Re: [PATCH 04/10] checkout --conflict=diff3: add a label for ancestor
- From
Junio C Hamano <gitster@pobox.com>
- Date
- Mar 15, 2010, 08:20 UTC
- Message-ID
- <7vvdcy0zf3.fsf@alter.siamese.dyndns.org>
- In-Reply-To
- <20100315075509.GD8824@progeny.tock>
Jonathan Nieder <jrnieder@gmail.com> writes:
Show 24 quoted lines
> 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 <monnier@iro.umontreal.ca> > Signed-off-by: Jonathan Nieder <jrnieder@gmail.com>
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").