rebase: use @{upstream} if no upstream specified
authorMartin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Thu, 10 Feb 2011 01:54:02 +0000 (20:54 -0500)
committerJunio C Hamano <gitster@pobox.com>
Thu, 10 Feb 2011 22:45:25 +0000 (14:45 -0800)
commit15a147e61898d25ec8b539190e87f3a09592c9c8
tree62da10628ea1cc30adfe03eaf3ff33c8126895ad
parentc71f8f3d501b155c3efa6aea2bc7768f7ace8cd1
rebase: use @{upstream} if no upstream specified

'git rebase' without arguments is currently not supported. Make it
default to 'git rebase @{upstream}'. That is also what 'git pull
[--rebase]' defaults to, so it only makes sense that 'git rebase'
defaults to the same thing.

Defaulting to @{upstream} will make it possible to run e.g. 'git
rebase -i' without arguments, which is probably a quite common use
case. It also improves the scenario where you have multiple branches
that rebase against a remote-tracking branch, where you currently have
to choose between the extra network delay of 'git pull' or the
slightly awkward keys to enter 'git rebase @{u}'.

The error reporting when no upstream is configured for the current
branch or when no branch is checked out is reused from git-pull.sh. A
function is extracted into git-parse-remote.sh for this purpose.

Helped-by: Yann Dirson <ydirson@altern.org>
Helped-by: Jonathan Nieder <jrnieder@gmail.com>
Signed-off-by: Martin von Zweigbergk <martin.von.zweigbergk@gmail.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/config.txt
Documentation/git-rebase.txt
git-parse-remote.sh
git-pull.sh
git-rebase.sh
t/t3400-rebase.sh