summaryrefslogtreecommitdiff
path: root/git-commit.sh
diff options
context:
space:
mode:
Diffstat (limited to 'git-commit.sh')
-rwxr-xr-xgit-commit.sh13
1 files changed, 10 insertions, 3 deletions
diff --git a/git-commit.sh b/git-commit.sh
index cef76a7775..2c4a4062a5 100755
--- a/git-commit.sh
+++ b/git-commit.sh
@@ -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"