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 majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to