diff options
author | Greg Price <price@ksplice.com> | 2009-07-22 12:38:58 -0400 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2009-07-22 11:15:06 -0700 |
commit | 1830d9cb62772c0626297e4bb6e537664283ebfa (patch) | |
tree | 0462ae20652b3b630b70eadb9eba9b3c0cfd0999 /t/t0060-path-utils.sh | |
parent | checkout -f: deal with a D/F conflict entry correctly (diff) | |
download | tgif-1830d9cb62772c0626297e4bb6e537664283ebfa.tar.xz |
Fix rebase -p --onto
In a rebase with --onto, the correct test for whether we can skip
rewriting a commit is if it is already on top of $ONTO, not $UPSTREAM.
Without --onto, this distinction does not exist and the behavior does
not change.
In a situation with two merged branches on a common base X:
X---o---o---o---M
\ /
x---x---x---x
Y
if we try to move the branches from their base on X to be based on Y,
so as to get
X
Y---o'--o'--o'--M'
\ /
x'--x'--x'--x'
then we fail. The command `git rebase -p --onto Y X M` moves only the
first-parent chain, like so:
X
\
x---x---x---x
\
Y---o'--o'--o'--M'
because it mistakenly drops the other branch(es) x---x---x---x from
the TODO file. This tests and fixes this behavior.
Signed-off-by: Greg Price <price@ksplice.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
Diffstat (limited to 't/t0060-path-utils.sh')
0 files changed, 0 insertions, 0 deletions