Make "git commit" work correctly in the presense of a manual merge
[gitweb.git] / git-commit-script
index e818d0a35ce2a9f5358520b7c44dfe27845de4b7..903c8dfabd9a15053e249ac2909036cab1d2922e 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,5 @@ ${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
+commit=$(cat .cmitmsg | git-commit-tree $tree -p $PARENTS) || exit 1
 echo $commit > ${GIT_DIR:-.git}/HEAD