stash: invoke rerere in case of conflict
authorPhil Hord <hordp@cisco.com>
Tue, 10 Jul 2012 22:52:28 +0000 (18:52 -0400)
committerJunio C Hamano <gitster@pobox.com>
Fri, 17 Aug 2012 17:59:17 +0000 (10:59 -0700)
"stash apply" directly calls a backend merge function which does not
automatically invoke rerere.  This confuses mergetool when leftover
rerere state is left behind from previous merges.

Invoke rerere explicitly when we encounter a conflict during stash
apply.  This turns the test introduced by the previous commit to
succeed.

Signed-off-by: Phil Hord <hordp@cisco.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-stash.sh
t/t7610-mergetool.sh

index fe4ab28b2e10f85b20ff7892663cbb141fad4723..63d2f59fe528100554161a303f9dbf5a9d748600 100755 (executable)
@@ -469,6 +469,7 @@ apply_stash () {
        else
                # Merge conflict; keep the exit status from merge-recursive
                status=$?
+               git rerere
                if test -n "$INDEX_OPTION"
                then
                        gettextln "Index was not unstashed." >&2
index 725f31686187ea2019c0a547d654822acaae949a..6fa0c70506b4a4f6b066d6f3d25aa0e499b419b5 100755 (executable)
@@ -203,7 +203,7 @@ test_expect_success 'mergetool skips resolved paths when rerere is active' '
     git reset --hard
 '
 
-test_expect_failure 'conflicted stash sets up rerere'  '
+test_expect_success 'conflicted stash sets up rerere'  '
     git config rerere.enabled true &&
     git checkout stash1 &&
     echo "Conflicting stash content" >file11 &&