X-Git-Url: https://git.tokkee.org/?a=blobdiff_plain;f=git-am.sh;h=2ecebc45a93784f1ca377941cd9b96569b3ade1c;hb=1b56bc9a1545902db64b8bdce48a499900acfe0b;hp=4126f0e857bad273d6f44cabe34565de860bd119;hpb=f81117b84d2c99a29acf06c6522aad54defbc760;p=git.git diff --git a/git-am.sh b/git-am.sh index 4126f0e85..2ecebc45a 100755 --- a/git-am.sh +++ b/git-am.sh @@ -14,7 +14,7 @@ b,binary pass --allo-binary-replacement to git-apply 3,3way allow fall back on 3way merging if needed s,signoff add a Signed-off-by line to the commit message u,utf8 recode into utf8 (default) -k,keep pass -k flagg to git-mailinfo +k,keep pass -k flag to git-mailinfo whitespace= pass it through git-apply C= pass it through git-apply p= pass it through git-apply @@ -117,6 +117,10 @@ It does not apply to blobs recorded in its index." unset GITHEAD_$his_tree } +reread_subject () { + git stripspace <"$1" | sed -e 1q +} + prec=4 dotest=.dotest sign= utf8=t keep= skip= interactive= resolved= binary= resolvemsg= resume= @@ -218,7 +222,7 @@ fi case "$resolved" in '') - files=$(git diff-index --cached --name-only HEAD) || exit + files=$(git diff-index --cached --name-only HEAD --) || exit if [ "$files" ]; then echo "Dirty index: cannot apply patches (dirty: $files)" >&2 exit 1 @@ -352,7 +356,7 @@ do case "$resolved$interactive" in tt) # This is used only for interactive view option. - git diff-index -p --cached HEAD >"$dotest/patch" + git diff-index -p --cached HEAD -- >"$dotest/patch" ;; esac esac @@ -376,6 +380,7 @@ do [aA]*) action=yes interactive= ;; [nN]*) action=skip ;; [eE]*) git_editor "$dotest/final-commit" + SUBJECT=$(reread_subject "$dotest/final-commit") action=again ;; [vV]*) action=again LESS=-S ${PAGER:-less} "$dotest/patch" ;; @@ -411,7 +416,7 @@ do # trust what the user has in the index file and the # working tree. resolved= - git diff-index --quiet --cached HEAD && { + git diff-index --quiet --cached HEAD -- && { echo "No changes - did you forget to use 'git add'?" stop_here_user_resolve $this } @@ -433,7 +438,7 @@ do then # Applying the patch to an earlier tree and merging the # result may have produced the same tree as ours. - git diff-index --quiet --cached HEAD && { + git diff-index --quiet --cached HEAD -- && { echo No changes -- Patch already applied. go_next continue @@ -464,9 +469,9 @@ do "$GIT_DIR"/hooks/post-applypatch fi - git gc --auto - go_next done +git gc --auto + rm -fr "$dotest"