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
Родитель 61c2bcbd11
Коммит 6a74642c50
2 изменённых файлов: 16 добавлений и 7 удалений

Просмотреть файл

@ -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=
;;

Просмотреть файл

@ -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.