rebase: silence "git checkout" for noop rebase
commit22946a942627d67b09a9630a036e48ce2823cd0c
authorJeff King <peff@peff.net>
Tue, 28 Apr 2015 05:17:37 +0000 (28 01:17 -0400)
committerJunio C Hamano <gitster@pobox.com>
Tue, 28 Apr 2015 18:38:40 +0000 (28 11:38 -0700)
tree3d01b4c9a940040688aac0c50d022e6cad11f06f
parent282616c72d1d08a77ca4fe1186cb708c38408d87
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>
git-rebase.sh