git-am: do not fail if 3-way fallback succeeds.
authorJunio C Hamano <junkio@cox.net>
Thu, 13 Oct 2005 18:46:43 +0000 (11:46 -0700)
committerJunio C Hamano <junkio@cox.net>
Thu, 13 Oct 2005 18:46:43 +0000 (11:46 -0700)
The current one incorrectly stops there without committing.

Signed-off-by: Junio C Hamano <junkio@cox.net>
git-am.sh

index 85d682669c21785c5b1f4b76fa95ac6104adbe07..c562159a187c233412d1ce2187d46280df020563 100755 (executable)
--- a/git-am.sh
+++ b/git-am.sh
@@ -296,15 +296,19 @@ do
        git-apply --index "$dotest/patch"; apply_status=$?
        if test $apply_status = 1 && test "$threeway" = t
        then
-               (fall_back_3way) || stop_here $this
-
-               # Applying the patch to an earlier tree and merging the
-               # result may have produced the same tree as ours.
-               if test '' = "$(git-diff-index --cached --name-only -z HEAD)"
+               if (fall_back_3way)
                then
-                       echo No changes -- Patch already applied.
-                       go_next
-                       continue
+                   # Applying the patch to an earlier tree and merging the
+                   # result may have produced the same tree as ours.
+                   changed="$(git-diff-index --cached --name-only -z HEAD)"
+                   if test '' = "$changed"
+                   then
+                           echo No changes -- Patch already applied.
+                           go_next
+                           continue
+                   fi
+                   # clear apply_status -- we have successfully merged.
+                   apply_status=0
                fi
        fi
        if test $apply_status != 0