rebase: silence "git checkout" for noop rebase

When the branch to be rebased is already up to date, we "git checkout" the branch, print an "up to date" message, and end the rebase early. However, our checkout may print "Switched to branch 'foo'" or "Already on 'foo'", even if the user has asked for "--quiet". We should avoid printing these messages at all, "--quiet" or no. Since the rebase is a noop, this checkout can be seen as optimizing out these other two checkout operations (that happen in a real rebase): 1. Moving to the detached HEAD to start the rebase; we always feed "-q" to checkout there, and instead rely on our own custom message (which respects --quiet). 2. Finishing a rebase, where we move to the final branch. Here we actually use update-ref rather than git-checkout, and produce no messages. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jeff King committed Apr 28, 2015 at 01:17 UTC 22946a942627d67b09a9630a036e48ce2823cd0c
1 file changed +1 -1
git-rebase.sh
+1 -1
@@ -581,7 +581,7 @@ then
581 # Lazily switch to the target branch if needed...
582 test -z "$switch_to" ||
583 GIT_REFLOG_ACTION="$GIT_REFLOG_ACTION: checkout $switch_to" \
584 - git checkout "$switch_to" --
584 + git checkout -q "$switch_to" --
585 say "$(eval_gettext "Current branch \$branch_name is up to date.")"
586 finish_rebase
587 exit 0