On Wed, Mar 06, 2013 at 08:26:57PM +0100, Antoine Pelisse wrote: > > however the difference isn't that easy to spot any more. I expected > > > > diff --cc file > > index a07e697,5080129..0000000 > > --- a/file > > +++ b/file > > @@@ -12,7 -12,7 +12,12 @@@ > > 12 > > 13 > > 14 > > ++<<<<<<< ours > > +15 > > ++||||||| base > > ++======= > > + 16 > > ++>>>>>>> theirs > > 17 > > 18 > > 19 > > This is not correct, it would mean that 12, 13, 14, 17, 18, 19 are in > base, while they are not. Yeah, I agree it is a bit of a lie, as you are not seeing the full picture of what was in the base. That is why we intentionally dial down the conflict simplification level when using diff3. If you apply this patch to git: diff --git a/xdiff/xmerge.c b/xdiff/xmerge.c index 9e13b25..f381e0c 100644 --- a/xdiff/xmerge.c +++ b/xdiff/xmerge.c @@ -420,15 +420,6 @@ static int xdl_do_merge(xdfenv_t *xe1, xdchange_t *xscr1, int style = xmp->style; int favor = xmp->favor; - if (style == XDL_MERGE_DIFF3) { - /* - * "diff3 -m" output does not make sense for anything - * more aggressive than XDL_MERGE_EAGER. - */ - if (XDL_MERGE_EAGER < level) - level = XDL_MERGE_EAGER; - } - c = changes = NULL; while (xscr1 && xscr2) { then it will produce the output that Uwe expects. While it can be misleading, I also think it can make some conflicts (like this one) much easier to understand. I don't see any reason we can't have a "zealous diff3" mode to let people view this output, as long as it is not the default. -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