Code

Accept -m and friends for initial commits and merge commits.
authorJunio C Hamano <junkio@cox.net>
Fri, 26 Aug 2005 01:57:35 +0000 (18:57 -0700)
committerJunio C Hamano <junkio@cox.net>
Sat, 27 Aug 2005 05:36:54 +0000 (22:36 -0700)
Yes it was irritating not to be able to do so.

Signed-off-by: Junio C Hamano <junkio@cox.net>
git-commit-script

index 5c5f564a28e779de333ea96c35c95993f7535869..e47a090c970f86f9c790deae455b4fcaf51c30f6 100755 (executable)
@@ -110,57 +110,51 @@ t)
        fi
 esac
 
+if [ ! -r "$GIT_DIR/HEAD" ]
+then
+       echo "#"
+       echo "# Initial commit"
+       echo "#"
+       git-ls-files | sed 's/^/# New file: /'
+       echo "#"
+elif [ -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 "#"
+fi >.editmsg
+if test "$log_message" != ''
+then
+       echo "$log_message"
+elif test "$logfile" != ""
+then
+       if test "$logfile" = -
+       then
+               test -t 0 &&
+               echo >&2 "(reading log message from standard input)"
+               cat
+       else
+               cat <"$logfile"
+       fi
+elif test "$use_commit" != ""
+then
+       git-cat-file commit "$use_commit" | sed -e '1,/^$/d'
+fi | git-stripspace >>.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
-       {
-               echo "#"
-               echo "# Initial commit"
-               case "$no_edit" in
-               t) echo "# (ignoring your commit message for initial commit)"
-                  no_edit= 
-               esac
-               echo "#"
-               git-ls-files | sed 's/^/# New file: /'
-               echo "#"
-       } >.editmsg
        PARENTS=""
-       no_edit=
 else
        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"
-               case "$no_edit" in
-               t) echo "# (ignoring your commit message for merge commit)"
-                  no_edit= 
-               esac
-               echo "#"
-               } |
-               git-stripspace >.editmsg
                PARENTS="-p HEAD -p MERGE_HEAD"
-       elif test "$log_message" != ''
-       then
-               echo "$log_message" |
-               git-stripspace >.editmsg
-       elif test "$logfile" != ""
-       then
-               if test "$logfile" = -
-               then
-                       test -t 0 &&
-                       echo >&2 "(reading log message from standard input)"
-                       cat
-               else
-                       cat <"$logfile"
-               fi |
-               git-stripspace >.editmsg
-       elif test "$use_commit" != ""
+       fi
+       if test "$use_commit" != ""
        then
                pick_author_script='
                /^author /{
@@ -188,22 +182,20 @@ else
                export GIT_AUTHOR_NAME
                export GIT_AUTHOR_EMAIL
                export GIT_AUTHOR_DATE
-               git-cat-file commit "$use_commit" |
-               sed -e '1,/^$/d' |
-               git-stripspace >.editmsg
        fi
-
        case "$signoff" in
        t)
                git-var GIT_COMMITTER_IDENT | sed -e '
                        s/>.*/>/
-                       s/^/Signed-off-by: /' >>.editmsg ;;
+                       s/^/Signed-off-by: /
+               ' >>.editmsg
+               ;;
        esac
        git-status-script >>.editmsg
 fi
 if [ "$?" != "0" -a ! -f $GIT_DIR/MERGE_HEAD ]
 then
-       cat .editmsg
+       sed -ne '/^#/p' .editmsg
        rm .editmsg
        exit 1
 fi