X-Git-Url: https://git.octo.it/?a=blobdiff_plain;f=git-commit.sh;h=5e85b54645edbbdb5e2ba82573ca25d37feacfd1;hb=85912b06734286108d0ec33f0479677e2fce252d;hp=9412840d8f2cc58b19d2ae3406396f2a271135d4;hpb=deca7e8c591608c9ffd0bf0aaf10b379da9f6d6e;p=git.git diff --git a/git-commit.sh b/git-commit.sh index 9412840d..5e85b546 100755 --- a/git-commit.sh +++ b/git-commit.sh @@ -94,13 +94,13 @@ esac case "$all,$#" in t,*) git-diff-files --name-only -z | - xargs -0 git-update-index -q --remove -- + git-update-index --remove -z --stdin ;; ,0) ;; *) git-diff-files --name-only -z "$@" | - xargs -0 git-update-index -q --remove -- + git-update-index --remove -z --stdin ;; esac || exit 1 git-update-index -q --refresh || exit 1 @@ -133,10 +133,13 @@ fi | git-stripspace >.editmsg case "$signoff" in t) - git-var GIT_COMMITTER_IDENT | sed -e ' - s/>.*/>/ - s/^/Signed-off-by: / - ' >>.editmsg + { + echo + git-var GIT_COMMITTER_IDENT | sed -e ' + s/>.*/>/ + s/^/Signed-off-by: / + ' + } >>.editmsg ;; esac @@ -153,13 +156,8 @@ if [ -f "$GIT_DIR/MERGE_HEAD" ]; then fi >>.editmsg PARENTS="-p HEAD" -if [ ! -r "$GIT_DIR/HEAD" ]; then - if [ -z "$(git-ls-files)" ]; then - echo Nothing to commit 1>&2 - exit 1 - fi - PARENTS="" -else +if GIT_DIR="$GIT_DIR" git-rev-parse --verify HEAD >/dev/null 2>&1 +then if [ -f "$GIT_DIR/MERGE_HEAD" ]; then PARENTS="-p HEAD "`sed -e 's/^/-p /' "$GIT_DIR/MERGE_HEAD"` fi @@ -192,6 +190,12 @@ else export GIT_AUTHOR_EMAIL export GIT_AUTHOR_DATE fi +else + if [ -z "$(git-ls-files)" ]; then + echo Nothing to commit 1>&2 + exit 1 + fi + PARENTS="" fi git-status >>.editmsg if [ "$?" != "0" -a ! -f $GIT_DIR/MERGE_HEAD ] @@ -220,7 +224,7 @@ if test -s .cmitchk then tree=$(git-write-tree) && commit=$(cat .cmitmsg | git-commit-tree $tree $PARENTS) && - echo $commit > "$GIT_DIR/HEAD" && + git-update-ref HEAD $commit $current && rm -f -- "$GIT_DIR/MERGE_HEAD" else echo >&2 "* no commit message? aborting commit."