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>
This commit is contained in:
Junio C Hamano 2006-04-20 01:20:56 -07:00
parent 61c2bcbd11
commit 6a74642c50
2 changed files with 16 additions and 7 deletions

View File

@ -167,8 +167,13 @@ run_status () {
fi fi
case "$committable" in case "$committable" in
0) 0)
echo "nothing to commit" case "$amend" in
exit 1 t)
echo "# No changes" ;;
*)
echo "nothing to commit" ;;
esac
exit 1 ;;
esac esac
exit 0 exit 0
) )
@ -365,14 +370,16 @@ tt*)
die "Only one of -c/-C/-F/-m can be used." ;; die "Only one of -c/-C/-F/-m can be used." ;;
esac esac
case "$#,$also$only" in case "$#,$also,$only,$amend" in
*,tt) *,t,t,*)
die "Only one of --include/--only can be used." ;; 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." ;; 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..." only_include_assumed="# Explicit paths specified without -i nor -o; assuming --only paths..."
also= also=
;; ;;

View File

@ -114,6 +114,8 @@ EOF
git commit -m 'Merged "mybranch" changes.' -i hello git commit -m 'Merged "mybranch" changes.' -i hello
test_done
cat > show-branch.expect << EOF cat > show-branch.expect << EOF
* [master] Merged "mybranch" changes. * [master] Merged "mybranch" changes.
! [mybranch] Some work. ! [mybranch] Some work.