From 6a74642c500118164ec331da93ef29b1163301bc Mon Sep 17 00:00:00 2001 From: Junio C Hamano Date: Thu, 20 Apr 2006 01:20:56 -0700 Subject: [PATCH] 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 --- git-commit.sh | 21 ++++++++++++++------- t/t1200-tutorial.sh | 2 ++ 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/git-commit.sh b/git-commit.sh index 01c73bdd..26cd7ca5 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 10024133..f4d53c07 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. -- 2.11.0