am: return control to caller, for housekeeping
authorRamkumar Ramachandra <artagnon@gmail.com>
Sun, 12 May 2013 11:56:38 +0000 (17:26 +0530)
committerJunio C Hamano <gitster@pobox.com>
Mon, 13 May 2013 06:20:07 +0000 (23:20 -0700)
We only need to do these two tasks

git gc --auto
rm -fr "$dotest"

ourselves if the script was invoked as a standalone program; when
invoked with --rebasing (from git-rebase--am.sh), cascade control back
to the ultimate caller git-rebase.sh to do this for us.

Signed-off-by: Ramkumar Ramachandra <artagnon@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-am.sh
git-rebase--am.sh
index ccb854a20e51d2522c8744742c10b3f5d70d7a9e..1cf3d1dacfb2084e9fcc360a6296900b6f9a7d03 100755 (executable)
--- a/git-am.sh
+++ b/git-am.sh
@@ -906,5 +906,10 @@ if test -s "$dotest"/rewritten; then
     fi
 fi
 
-rm -fr "$dotest"
-git gc --auto
+# If am was called with --rebasing (from git-rebase--am), it's up to
+# the caller to take care of housekeeping.
+if ! test -f "$dotest/rebasing"
+then
+       rm -fr "$dotest"
+       git gc --auto
+fi
index f84854f09a14b92790bad543cbe78c2662def9f7..34e3102fcbfa64ec101c1fe009c9b14a5976e4c2 100644 (file)
@@ -7,12 +7,12 @@ case "$action" in
 continue)
        git am --resolved --resolvemsg="$resolvemsg" &&
        move_to_original_branch
-       exit
+       return
        ;;
 skip)
        git am --skip --resolvemsg="$resolvemsg" &&
        move_to_original_branch
-       exit
+       return
        ;;
 esac
 
@@ -56,7 +56,7 @@ else
 
                As a result, git cannot rebase them.
                EOF
-               exit $?
+               return $?
        fi
 
        git am $git_am_opt --rebasing --resolvemsg="$resolvemsg" <"$GIT_DIR/rebased-patches"
@@ -68,7 +68,7 @@ fi
 if test 0 != $ret
 then
        test -d "$state_dir" && write_basic_state
-       exit $ret
+       return $ret
 fi
 
 move_to_original_branch