From: Junio C Hamano Date: Mon, 15 Mar 2010 08:20:00 GMT Subject: Re: [PATCH 04/10] checkout --conflict=diff3: add a label for ancestor Message-ID: <7vvdcy0zf3.fsf@alter.siamese.dyndns.org> In-Reply-To: <20100315075509.GD8824@progeny.tock> Jonathan Nieder writes: > git checkout --conflict=diff3 can be used to present conflicts hunks > including text from the common ancestor: > > <<<<<<< ours > ourside > ||||||| > original > ======= > theirside > >>>>>>> theirs > > The added information can be very helpful for resolving a merge by > hand, and merge tools can usually understand it without trouble > because it looks like output from ‘diff3 -m’. > > Unfortunately, not all can: ‘diff3’ includes a label for the merge > base on the ||||||| line and it seems some tools cannot parse conflict > hunks without such a label. Humans could use help in interpreting the > output, too. So mark the start of the text from the common ancestor > with the label “||||||| original”. > > git rerere will not have trouble parsing this output, since instead of > looking for a newline, it looks for whitespace after the ||||||| > marker. Missing: "... and adding the extra label will not affect the computed the conflict identifier, so existing rerere database will not be invalidated with this change either". I didn't verified the above claim, but if it does not hold true, then we need to think the transition strategy. I don't expect a problem, though. > Reported-by: Stefan Monnier > Signed-off-by: Jonathan Nieder This "Reported" feels very odd for a feature enhancement ("Requested" would be more appropriate) not a bugfix. > --- > Since “original” a good name for the common ancestor? I also > considered “base” and “ancestor”; the latter is too jargon-y for my > taste, but “base” seems all right. Yeah, base sounds good. Even though at the lowest level, a merge is a merge between two equals, people tend to think of the contents of their own side "original" (vs the merge outcome "result").