feature suggestion: optimize common parts for checkout --conflict=diff3
- From
Uwe Kleine-König <u.kleine-koenig@pengutronix.de>
- Date
- Mar 6, 2013, 15:05 UTC
- Message-ID
- <20130306150548.GC15375@pengutronix.de>
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/ |