Browse Source

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>
maint
Junio C Hamano 19 years ago
parent
commit
6a74642c50
  1. 21
      git-commit.sh
  2. 2
      t/t1200-tutorial.sh

21
git-commit.sh

@ -167,8 +167,13 @@ run_status () { @@ -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*) @@ -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=
;;

2
t/t1200-tutorial.sh

@ -114,6 +114,8 @@ EOF @@ -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.

Loading…
Cancel
Save