combine-diff: do not punt on removed or added files.
[git.git] / git-commit.sh
index 3d250ec..10946ed 100755 (executable)
@@ -3,12 +3,9 @@
 # Copyright (c) 2005 Linus Torvalds
 #
 
+USAGE='[-a] [-s] [-v | --no-verify]  [-m <message> | -F <logfile> | (-C|-c) <commit>] [-e] [<path>...]'
 . git-sh-setup
 
-usage () {
-       die 'git commit [-a] [-s] [-v | --no-verify]  [-m <message> | -F <logfile> | (-C|-c) <commit>] [-e] [<path>...]'
-}
-
 all= logfile= use_commit= no_edit= log_given= log_message= verify=t signoff=
 while case "$#" in 0) break;; esac
 do
@@ -151,7 +148,7 @@ esac
 
 if [ -f "$GIT_DIR/MERGE_HEAD" ]; then
        echo "#"
-       echo "# It looks like your may be committing a MERGE."
+       echo "# It looks like you may be committing a MERGE."
        echo "# If this is not correct, please remove the file"
        echo "# $GIT_DIR/MERGE_HEAD"
        echo "# and try again"
@@ -168,6 +165,7 @@ then
        then
                pick_author_script='
                /^author /{
+                       s/'\''/'\''\\'\'\''/g
                        h
                        s/^author \([^<]*\) <[^>]*> .*$/\1/
                        s/'\''/'\''\'\'\''/g
@@ -209,6 +207,14 @@ then
 fi
 case "$no_edit" in
 '')
+       case "${VISUAL:-$EDITOR},$TERM" in
+       ,dumb)
+               echo >&2 "Terminal is dumb but no VISUAL nor EDITOR defined."
+               echo >&2 "Please supply the commit log message using either"
+               echo >&2 "-m or -F option.  A boilerplate log message has"
+               echo >&2 "been prepared in $GIT_DIR/COMMIT_EDITMSG"
+               exit 1 ;;
+       esac
        ${VISUAL:-${EDITOR:-vi}} "$GIT_DIR/COMMIT_EDITMSG"
        ;;
 esac