]> git.ipfire.org Git - thirdparty/git.git/commitdiff
rebase -r: demonstrate bug with conflicting merges
authorJohannes Schindelin <johannes.schindelin@gmx.de>
Mon, 12 Nov 2018 23:25:57 +0000 (15:25 -0800)
committerJunio C Hamano <gitster@pobox.com>
Tue, 13 Nov 2018 03:04:00 +0000 (12:04 +0900)
When calling `merge` on a branch that has already been merged, that
`merge` is skipped quietly, but currently a MERGE_HEAD file is being
left behind and will then be grabbed by the next `pick` (that did
not want to create a *merge* commit).

Demonstrate this.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
t/t3430-rebase-merges.sh

index aa7bfc88ece9de7f542f354c78b7be9ec6d2bdf7..1f08a336878c21f67586d647571cea2ea85c3a73 100755 (executable)
@@ -396,4 +396,20 @@ test_expect_success 'with --autosquash and --exec' '
        grep "G: +G" actual
 '
 
+test_expect_failure '--continue after resolving conflicts after a merge' '
+       git checkout -b already-has-g E &&
+       git cherry-pick E..G &&
+       test_commit H2 &&
+
+       git checkout -b conflicts-in-merge H &&
+       test_commit H2 H2.t conflicts H2-conflict &&
+       test_must_fail git rebase -r already-has-g &&
+       grep conflicts H2.t &&
+       echo resolved >H2.t &&
+       git add -u &&
+       git rebase --continue &&
+       test_must_fail git rev-parse --verify HEAD^2 &&
+       test_path_is_missing .git/MERGE_HEAD
+'
+
 test_done