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:
parent
61c2bcbd11
commit
6a74642c50
@ -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.
|
||||
|
Loading…
Reference in New Issue
Block a user