summaryrefslogtreecommitdiff
path: root/git-commit.sh
diff options
context:
space:
mode:
authorJohannes Sixt <johannes.sixt@telecom.at>2007-12-03 08:24:50 +0100
committerJunio C Hamano <gitster@pobox.com>2007-12-03 00:25:26 -0800
commit13aba1e514c1dceee9d731d157bbc261426be351 (patch)
tree212234441c9d52a3112e1ba67cda3a7b2435f858 /git-commit.sh
parentafcc4f7767ad8a2daac1c816fad02c890b0d2b99 (diff)
downloadgit-13aba1e514c1dceee9d731d157bbc261426be351.tar.gz
git-commit: Allow to amend a merge commit that does not change the tree
Normally, it should not be allowed to generate an empty commit. A merge commit generated with git 'merge -s ours' does not change the tree (along the first parent), but merges are not "empty" even if they do not change the tree. Hence, commit 8588452ceb7 allowed to amend a merge commit that does not change the tree, but 4fb5fd5d301 disallowed it again in an attempt to avoid that an existing commit is amended such that it becomes empty. With this change, a commit can be edited (create a new one or amend an existing one) either if there are changes or if there are at least two parents. Signed-off-by: Johannes Sixt <johannes.sixt@telecom.at> Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 'git-commit.sh')
-rwxr-xr-xgit-commit.sh9
1 files changed, 6 insertions, 3 deletions
diff --git a/git-commit.sh b/git-commit.sh
index 485339754c..cef76a7775 100755
--- a/git-commit.sh
+++ b/git-commit.sh
@@ -515,13 +515,16 @@ else
# we need to check if there is anything to commit
run_status >/dev/null
fi
-if [ "$?" != "0" -a ! -f "$GIT_DIR/MERGE_HEAD" ]
-then
+case "$?,$PARENTS" in
+0,* | *,-p' '?*-p' '?*)
+ # a merge commit can record the same tree as its parent.
+ ;;
+*)
rm -f "$GIT_DIR/COMMIT_EDITMSG" "$GIT_DIR/SQUASH_MSG"
use_status_color=t
run_status
exit 1
-fi
+esac
case "$no_edit" in
'')