Hello, Here comes another recipe for a different suggestion: git init echo 1 > file git add file git commit -m 'base' git branch branch seq 1 30 | grep -v 15 > file git commit -m 'add 2-30 without 15' file git checkout branch seq 1 30 | grep -v 16 > file git commit -m 'add 2-30 without 16' file git merge master git diff This yields: diff --cc file index a07e697,5080129..0000000 --- a/file +++ b/file @@@ -12,7 -12,7 +12,11 @@@ 12 13 14 ++<<<<<<< HEAD +15 ++======= + 16 ++>>>>>>> master 17 18 19 as expected; nice and sweet. After git checkout --conflict=diff3 file 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 But instead I get diff --cc file index a07e697,5080129..0000000 --- a/file +++ b/file @@@ -1,29 -1,29 +1,61 @@@ 1 ++<<<<<<< ours +2 +3 +4 +5 +6 +7 +8 +9 +10 +11 +12 +13 +14 +15 +17 +18 +19 +20 +21 +22 +23 +24 +25 +26 +27 +28 +29 +30 ++||||||| base ++======= + 2 + 3 + 4 + 5 + 6 + 7 + 8 + 9 + 10 + 11 + 12 + 13 + 14 + 16 + 17 + 18 + 19 + 20 + 21 + 22 + 23 + 24 + 25 + 26 + 27 + 28 + 29 + 30 ++>>>>>>> theirs Of course this is technically correct, just not maximally helpful. Is this a missing optimisation for the diff3 case or did I miss a detail that makes my expectation wrong? Best regards Uwe -- Pengutronix e.K. | Uwe Kleine-König | Industrial Linux Solutions | http://www.pengutronix.de/ | -- 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