Code

Make sure we error out if we can't remove a file on automatic merges.
[git.git] / git-commit-script
index e818d0a35ce2a9f5358520b7c44dfe27845de4b7..1abfa143ee8fdc3896b9f05b6cc503675d735d4b 100755 (executable)
@@ -1,5 +1,16 @@
 #!/bin/sh
-git-status-script > .editmsg
+: ${GIT_DIR=.git}
+PARENTS="HEAD"
+if [ -f $GIT_DIR/MERGE_HEAD ]; then
+       echo "#"
+       echo "# It looks like your may be committing a MERGE."
+       echo "# If this is not correct, please remove the file"
+       echo "# $GIT_DIR/MERGE_HEAD"
+       echo "# and try again"
+       echo "#"
+       PARENTS="HEAD -p MERGE_HEAD"
+fi > .editmsg
+git-status-script >> .editmsg
 if [ "$?" != "0" ]
 then
        cat .editmsg
@@ -9,5 +20,6 @@ ${VISUAL:-${EDITOR:-vi}} .editmsg
 grep -v '^#' < .editmsg | git-stripspace > .cmitmsg
 [ -s .cmitmsg ] || exit 1
 tree=$(git-write-tree) || exit 1
-commit=$(cat .cmitmsg | git-commit-tree $tree -p HEAD) || exit 1
-echo $commit > ${GIT_DIR:-.git}/HEAD
+commit=$(cat .cmitmsg | git-commit-tree $tree -p $PARENTS) || exit 1
+echo $commit > $GIT_DIR/HEAD
+rm -f -- $GIT_DIR/MERGE_HEAD