diff -r fd4a38bd7e49 -r b73eb98c0243 tests/test-rebase-obsolete.t --- a/tests/test-rebase-obsolete.t Wed Oct 14 23:42:15 2015 +0100 +++ b/tests/test-rebase-obsolete.t Thu Oct 15 00:32:20 2015 +0100 @@ -590,3 +590,51 @@ note: not rebasing 14:9ad579b4a5de "I", already in destination as 17:fc37a630c901 "K" rebasing 15:5ae8a643467b "J" + $ cd .. + +Skip obsolete changeset even with multiple hops +----------------------------------------------- + +setup + + $ hg init obsskip + $ cd obsskip + $ cat << EOF >> .hg/hgrc + > [experimental] + > rebaseskipobsolete = True + > [extensions] + > strip = + > EOF + $ echo A > A + $ hg add A + $ hg commit -m A + $ echo B > B + $ hg add B + $ hg commit -m B0 + $ hg commit --amend -m B1 + $ hg commit --amend -m B2 + $ hg up --hidden 'desc(B0)' + 0 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ echo C > C + $ hg add C + $ hg commit -m C + +Rebase finds its way in a chain of marker + + $ hg rebase -d 'desc(B2)' + note: not rebasing 1:a8b11f55fb19 "B0", already in destination as 3:261e70097290 "B2" + rebasing 4:212cb178bcbb "C" (tip) + +Even when the chain include missing node + + $ hg up --hidden 'desc(B0)' + 0 files updated, 0 files merged, 1 files removed, 0 files unresolved + $ echo D > D + $ hg add D + $ hg commit -m D + $ hg --hidden strip -r 'desc(B1)' + saved backup bundle to $TESTTMP/obsskip/.hg/strip-backup/86f6414ccda7-b1c452ee-backup.hg (glob) + + $ hg rebase -d 'desc(B2)' + note: not rebasing 1:a8b11f55fb19 "B0", already in destination as 2:261e70097290 "B2" + rebasing 5:1a79b7535141 "D" (tip)