On Wed, Mar 06, 2013 at 01:09:41PM -0800, Junio C Hamano wrote: > Jeff King <peff@xxxxxxxx> writes: > > > But it would apply to the content that is outside > > of the hunk marker; we have changed the concept of what is in the base > > and what is in the conflict by shrinking the conflict to its smallest > > size. > > Hmm, unless you mean by "base" something entirely different from > "what was in the common ancestor version", I do not think I can > agree. I don't know. I didn't use the word "base" in the first place. I was trying to figure out what you meant. :) My point is that the hunk (everything from "<<<" to ">>>") is self-consistent. It's just misleading in that the hunk has been shrunk not to include identical bits from each side. IMHO, this is not much different than a nearby change being auto-resolved. The conflict hunks the user sees do not represent the original files, but rather the remains after a first pass at resolving. > The point of diff3 mode is to show how it looked line in the > common ancestor and what the conflicting sides want to change that > common version into; letting the user view three versions to help > him decide what to do by only looking at the part inside conflict > markers. Right, I agree. > We show "both sides added, either identically or differently" as > noteworthy events, but the patched code pushes "both sides added > identically" case outside the conflicting hunk, as if what was added > relative to the common ancestor version (in Uwe's case, is it 1-14 > that is common, or just 10-14?) is not worth looking at when > considering what the right resolution is. If it is not worth > looking at what was in the original for the conflicting part, why > would we be even using diff3 mode in the first place? I think Uwe's example shows that it _is_ useful. Yes, you no longer have the information about what happened through 1-14 (whether it was really there in the ancestor file, or whether it was simply added identically). But that information might or might not be relevant. In Uwe's example, it is just noise that detracts from the interesting part of the change (or does it? I think the answer is in the eye of the reader). I think it can be helpful to have both types available, and they can pick which one they want; it's just another tool. Another argument is that some people (including me) set merge.conflictstyle to diff3, because they like seeing the extra context when resolving (I find it helps a lot with rebasing, when it is sometimes hard to remember which side is which in the merge). I'd consider setting it to zdiff3 to get the benefits of XDL_MERGE_ZEALOUS, and using "git checkout --conflict-style=diff3" if I need to get more information about a specific case. -Peff -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html