From: Junio C Hamano Date: Thu, 20 Apr 2006 08:20:56 +0000 (-0700) Subject: git-commit --amend: two fixes. X-Git-Tag: v1.3.1~9 X-Git-Url: https://git.tokkee.org/?a=commitdiff_plain;h=6a74642;p=git.git 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 --- diff --git a/git-commit.sh b/git-commit.sh index 01c73bdd0..26cd7ca54 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= ;; diff --git a/t/t1200-tutorial.sh b/t/t1200-tutorial.sh index 10024133e..f4d53c078 100755 --- a/t/t1200-tutorial.sh +++ b/t/t1200-tutorial.sh @@ -114,6 +114,8 @@ EOF git commit -m 'Merged "mybranch" changes.' -i hello +test_done + cat > show-branch.expect << EOF * [master] Merged "mybranch" changes. ! [mybranch] Some work.