]> asedeno.scripts.mit.edu Git - git.git/blobdiff - git-commit.sh
git-commit --allow-empty
[git.git] / git-commit.sh
index cef76a77754190338add5b2bb61435fca5193b61..2c4a4062a5317c51601fc4c644c96a7f75e1ef2c 100755 (executable)
@@ -74,6 +74,7 @@ trap '
 
 all=
 also=
+allow_empty=f
 interactive=
 only=
 logfile=
@@ -114,6 +115,10 @@ do
        -a|--a|--al|--all)
                all=t
                ;;
+       --allo|--allow|--allow-|--allow-e|--allow-em|--allow-emp|\
+       --allow-empt|--allow-empty)
+               allow_empty=t
+               ;;
        --au=*|--aut=*|--auth=*|--autho=*|--author=*)
                force_author="${1#*=}"
                ;;
@@ -515,9 +520,11 @@ else
        # we need to check if there is anything to commit
        run_status >/dev/null
 fi
-case "$?,$PARENTS" in
-0,* | *,-p' '?*-p' '?*)
-       # a merge commit can record the same tree as its parent.
+case "$allow_empty,$?,$PARENTS" in
+t,* | ?,0,* | ?,*,-p' '?*-p' '?*)
+       # an explicit --allow-empty, or a merge commit can record the
+       # same tree as its parent.  Otherwise having commitable paths
+       # is required.
        ;;
 *)
        rm -f "$GIT_DIR/COMMIT_EDITMSG" "$GIT_DIR/SQUASH_MSG"