rebase: use reflog to find common base with upstream
commitad8261d21221d27638c75f47b39892db6f7972f6
authorJohn Keeping <john@keeping.me.uk>
Mon, 9 Dec 2013 23:16:16 +0000 (9 23:16 +0000)
committerJunio C Hamano <gitster@pobox.com>
Tue, 10 Dec 2013 18:56:30 +0000 (10 10:56 -0800)
treed1e5ee3392f62b1eb07e6703b034a7e033ddc30b
parent48059e405028ebf8a09c5a9aede89dfb460cce98
rebase: use reflog to find common base with upstream

Commit 15a147e (rebase: use @{upstream} if no upstream specified,
2011-02-09) says:

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.

but that isn't actually the case.  Since commit d44e712 (pull: support
rebased upstream + fetch + pull --rebase, 2009-07-19), pull has actually
chosen the most recent reflog entry which is an ancestor of the current
branch if it can find one.

Add a '--fork-point' argument to git-rebase that can be used to trigger
this behaviour.  This option is turned on by default if no non-option
arguments are specified on the command line, otherwise we treat an
upstream specified on the command-line literally.

Signed-off-by: John Keeping <john@keeping.me.uk>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Documentation/git-rebase.txt
git-rebase.sh
t/t3400-rebase.sh