summaryrefslogtreecommitdiff
path: root/git-commit.sh
diff options
context:
space:
mode:
authorJunio C Hamano <junkio@cox.net>2006-04-20 01:20:56 -0700
committerJunio C Hamano <junkio@cox.net>2006-04-20 02:51:12 -0700
commit6a74642c500118164ec331da93ef29b1163301bc (patch)
tree6cc4e0ba710b7e2ea02bd7d4271f32f3899d57cd /git-commit.sh
parent61c2bcbd11e3b66a328b3850c01592e5dc1c67bb (diff)
downloadgit-6a74642c500118164ec331da93ef29b1163301bc.tar.gz
git-commit --amend: two fixes.
When running "git commit --amend" only to fix the commit log message without any content change, we mistakenly showed the git-status output that says "nothing to commit" without commenting it out. If you have already run update-index but you want to amend the top commit, "git commit --amend --only" without any paths should have worked, because --only means "starting from the base commit, update-index these paths only to prepare the index to commit, and perform the commit". However, we refused -o without paths. Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'git-commit.sh')
-rwxr-xr-xgit-commit.sh21
1 files changed, 14 insertions, 7 deletions
diff --git a/git-commit.sh b/git-commit.sh
index 01c73bdd08..26cd7ca54d 100755
--- a/git-commit.sh
+++ b/git-commit.sh
@@ -167,8 +167,13 @@ run_status () {
fi
case "$committable" in
0)
- echo "nothing to commit"
- exit 1
+ case "$amend" in
+ t)
+ echo "# No changes" ;;
+ *)
+ echo "nothing to commit" ;;
+ esac
+ exit 1 ;;
esac
exit 0
)
@@ -365,14 +370,16 @@ tt*)
die "Only one of -c/-C/-F/-m can be used." ;;
esac
-case "$#,$also$only" in
-*,tt)
+case "$#,$also,$only,$amend" in
+*,t,t,*)
die "Only one of --include/--only can be used." ;;
-0,t)
+0,t,,* | 0,,t,)
die "No paths with --include/--only does not make sense." ;;
-0,)
+0,,t,t)
+ only_include_assumed="# Clever... amending the last one with dirty index." ;;
+0,,,*)
;;
-*,)
+*,,,*)
only_include_assumed="# Explicit paths specified without -i nor -o; assuming --only paths..."
also=
;;