Code

git-am: propagate -C<n>, -p<n> options as well
authorJunio C Hamano <gitster@pobox.com>
Thu, 4 Dec 2008 23:38:27 +0000 (15:38 -0800)
committerJunio C Hamano <gitster@pobox.com>
Fri, 5 Dec 2008 02:45:01 +0000 (18:45 -0800)
These options are meant to deal with patches that do not apply cleanly
due to the differences between the version the patch was based on and
the version "git am" is working on.

Because a series of patches applied in the same "git am" run tends to
come from the same source, it is more useful to propagate these options
after the application stops.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
git-am.sh

index 1bf70d47779aeddd281895bc5523ed66a549da99..ed54e716d9a33a2be9525e48f5f7019e13ea0e3a 100755 (executable)
--- a/git-am.sh
+++ b/git-am.sh
@@ -121,7 +121,7 @@ It does not apply to blobs recorded in its index."
 
 prec=4
 dotest="$GIT_DIR/rebase-apply"
-sign= utf8=t keep= skip= interactive= resolved= rebasing= abort= ws=
+sign= utf8=t keep= skip= interactive= resolved= rebasing= abort=
 resolvemsg= resume=
 git_apply_opt=
 
@@ -156,7 +156,7 @@ do
        --resolvemsg)
                shift; resolvemsg=$1 ;;
        --whitespace)
-               ws="--whitespace=$2"; shift ;;
+               git_apply_opt="$git_apply_opt $1=$2"; shift ;;
        -C|-p)
                git_apply_opt="$git_apply_opt $1$2"; shift ;;
        --)
@@ -247,10 +247,10 @@ else
                exit 1
        }
 
-       # -s, -u, -k and --whitespace flags are kept for the
-       # resuming session after a patch failure.
+       # -s, -u, -k, --whitespace, -C and -p flags are kept
+       # for the resuming session after a patch failure.
        # -3 and -i can and must be given when resuming.
-       echo " $ws" >"$dotest/whitespace"
+       echo " $git_apply_opt" >"$dotest/apply_opt_extra"
        echo "$sign" >"$dotest/sign"
        echo "$utf8" >"$dotest/utf8"
        echo "$keep" >"$dotest/keep"
@@ -283,7 +283,7 @@ if test "$(cat "$dotest/keep")" = t
 then
        keep=-k
 fi
-ws=$(cat "$dotest/whitespace")
+git_apply_opt=$(cat "$dotest/apply_opt_extra")
 if test "$(cat "$dotest/sign")" = t
 then
        SIGNOFF=`git var GIT_COMMITTER_IDENT | sed -e '
@@ -454,7 +454,7 @@ do
 
        case "$resolved" in
        '')
-               git apply $git_apply_opt $ws --index "$dotest/patch"
+               git apply $git_apply_opt --index "$dotest/patch"
                apply_status=$?
                ;;
        t)