diff --git a/tests/bundles/rebase.hg b/tests/bundles/rebase.hg index 12007c0e2e6a4429a3f527d61dca3020a99db448..69f1b6d335a54ecddb6a9f535927d7b3b8575099 GIT binary patch literal 1663 zc$@)$27viUM=>x$T4*^jL0KkKS?K@uBLDzhfB*i!-}e9ifA|0Q(cS<5?|=XQ?*IP1 z|NpE1-|znCd-u=;`*}rx8(_cyfBS?6JF&Q)rnhi2yWHK|< zgCjwsA)`Rk2*hYK$ixE(!UllUXwVY`Q%N+?00Ton&;S4f)HKixfB~QbMt}oBpa1{> z13&-+Kmnj=0RRBd05oU-0i!037>0lV0LTptAkZ`nfB*nAXaE2J28MtD05UWH2&yR& z>FS@Uq-5G?Xpd0+Aq_OsBhfQN$>dF>GHH`FGa?3=spw4ys6913O*CRXN2q#gZ6~Pp z9;VYoc~4N&Ow{t4X|ji;c|qxlX_GcoauLpMzDFyX@q8TKM(+&qxzCIk3)n2{ezht8 z;+5maW$AbR5SZ2kU=g`;00J-}GHYOigM*3dxYfs=c}jBB_Du6B?9*>{03EtGfTR-v zlqIB=F0v#{J{~S3C5=#1!$<+a#zHF>4Ti-wv)7)Ny^%?ZNI}e01Ty)f>~m{woK&M7X?q;H* zui{NFdsd!xGIN^xj)9Cz*e7&axOJW7cDC4)Xv36Po+Xz}s?h0|w1~f~3nIWZQcElT zQ*?lZ&}!?HB+v>7nr4wq87O)P6f-|d7&eOGgH>ptj)+IBA_i30Wh^W-(usu_R38I| zVQ+AYVC1nbU}9vR!SqYb^o1kCQSJEkC$PgKDH^G#$WGK%SZ1uO9~@{dSW;ISOD(Xc zEmmKI$y9tU3XxURj8w$N`q`=^$=91_jv9HNZqs{HWn4jV$D-wDK5G`RwV)p2JLN$t zxq68Cp(%>KVJ}irP=ky(Vw;7Ow-Vh2o0z6r%)x5SARY1)tE)3I2ZXCs={4yp(@{R_ z#3gfV(d>j6rgdh_Y$0)-@6e+se1u3G7j$mLh3S5?*##I%V&^vKLCvCGwav@4TA<9D z#1?d_-*?JC3Q7&hF0-6M+S?Y^5uni_V+^F)Fv9~hsdq~mNwCBWTq?7;Uji)Q4^A{&JQ!lAp(l|^ZEB7g43s54n$EEX-g;os z0j8TCLaMM*mx!z}q{i0@xs7w9WVA)FU^OrGOR#x4n3VxGNvNP;dWkH7V=Xd^N%v8A z@i`y@?n7$V9qNt~DzqKzTMDmLNh}bQ76`VSy?q3Ljz{eo?5#BpNzIcOdU_~js3;pO z{A*IW+EPj!R>d)Nd0?{)dr7m|1dwBQSTeYs_m7kP!ZtW78ECmr;5}$FhFoZPc_6BX zX~w@zb^j18TQP{{ZPx88wLw%*$%dPv5{zKSXdynkfWm~(UiNmQOdnS|2H|`8^tUu& zkCz*{TcP6z0BzSSZ(?LCR{=EP+S%S7{r9m+Pl8c-5K((~y5!kP=R{4{?@Dzv!{cxMM{&IKIdrD?cHyDbxnm+6x(LKS9WfpBMIx!Nm*JK)mhuzW6BzNO4lQpX_ z|H_rty8D^6Sj*<*g~xgP8xt+>uTc JBsxF+NWdpT`pf_T diff --git a/tests/bundles/rebase.sh b/tests/bundles/rebase.sh --- a/tests/bundles/rebase.sh +++ b/tests/bundles/rebase.sh @@ -2,21 +2,41 @@ hg init rebase cd rebase +# @ 7: 'H' +# | +# | o 6: 'G' +# |/| +# o | 5: 'F' +# | | +# | o 4: 'E' +# |/ +# | o 3: 'D' +# | | +# | o 2: 'C' +# | | +# | o 1: 'B' +# |/ +# o 0: 'A' + echo A > A hg ci -Am A echo B > B hg ci -Am B -hg up -q -C 0 echo C > C hg ci -Am C -hg up -q -C 0 echo D > D hg ci -Am D -hg merge -r 2 -hg ci -m E -hg up -q -C 3 +hg up -q -C 0 +echo E > E +hg ci -Am E +hg up -q -C 0 echo F > F hg ci -Am F +hg merge -r 4 +hg ci -m G +hg up -q -C 5 +echo H > H +hg ci -Am H hg bundle -a ../rebase.hg diff --git a/tests/test-rebase-collapse.t b/tests/test-rebase-collapse.t --- a/tests/test-rebase-collapse.t +++ b/tests/test-rebase-collapse.t @@ -11,45 +11,14 @@ Create repo a: $ hg init a $ cd a - - $ echo A > A - $ hg ci -Am A - adding A - $ echo B > B - $ hg ci -Am B - adding B - $ echo C > C - $ hg ci -Am C - adding C - $ echo D > D - $ hg ci -Am D - adding D - - $ hg up -q -C 0 - - $ echo E > E - $ hg ci -Am E - adding E - created new head - - $ hg up -q -C 0 - - $ echo F > F - $ hg ci -Am F - adding F - created new head - - $ hg merge -r 4 - 1 files updated, 0 files merged, 0 files removed, 0 files unresolved - (branch merge, don't forget to commit) - $ hg ci -m G - - $ hg up -q -C 5 - - $ echo H > H - $ hg ci -Am H - adding H - created new head + $ hg unbundle $TESTDIR/bundles/rebase.hg + adding changesets + adding manifests + adding file changes + added 8 changesets with 7 changes to 7 files (+2 heads) + (run 'hg heads' to see heads, 'hg merge' to merge) + $ hg up tip + 3 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg tglog @ 7: 'H' diff --git a/tests/test-rebase-named-branches.t b/tests/test-rebase-named-branches.t --- a/tests/test-rebase-named-branches.t +++ b/tests/test-rebase-named-branches.t @@ -13,7 +13,7 @@ adding changesets adding manifests adding file changes - added 6 changesets with 5 changes to 5 files (+2 heads) + added 8 changesets with 7 changes to 7 files (+2 heads) (run 'hg heads' to see heads, 'hg merge' to merge) $ hg up tip 3 files updated, 0 files merged, 0 files removed, 0 files unresolved @@ -36,34 +36,42 @@ Rebasing descendant onto ancestor across $ hg ci -m 'extra named branch' $ hg tglog - @ 6: 'extra named branch' dev + @ 8: 'extra named branch' dev | - o 5: 'F' + o 7: 'H' | - | o 4: 'E' + | o 6: 'G' |/| - o | 3: 'D' + o | 5: 'F' + | | + | o 4: 'E' + |/ + | o 3: 'D' | | | o 2: 'C' - |/ + | | | o 1: 'B' |/ o 0: 'A' - $ hg rebase -s 6 -d 5 + $ hg rebase -s 8 -d 7 saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob) $ hg tglog - @ 6: 'extra named branch' + @ 8: 'extra named branch' | - o 5: 'F' + o 7: 'H' | - | o 4: 'E' + | o 6: 'G' |/| - o | 3: 'D' + o | 5: 'F' + | | + | o 4: 'E' + |/ + | o 3: 'D' | | | o 2: 'C' - |/ + | | | o 1: 'B' |/ o 0: 'A' @@ -76,28 +84,31 @@ Rebasing descendant onto ancestor across $ cd a2 - $ echo x > x + $ echo I > I - $ hg add x - - $ hg ci -m 'G' + $ hg ci -AmI + adding I $ hg tglog - @ 6: 'G' + @ 8: 'I' | - o 5: 'F' + o 7: 'H' | - | o 4: 'E' + | o 6: 'G' |/| - o | 3: 'D' + o | 5: 'F' + | | + | o 4: 'E' + |/ + | o 3: 'D' | | | o 2: 'C' - |/ + | | | o 1: 'B' |/ o 0: 'A' - $ hg rebase -s 6 -d 5 + $ hg rebase -s 8 -d 7 abort: source is descendant of destination [255] @@ -119,21 +130,25 @@ Rebasing ancestor onto descendant across $ hg ci -m 'extra named branch' $ hg tglog - @ 6: 'extra named branch' dev + @ 8: 'extra named branch' dev | - o 5: 'F' + o 7: 'H' | - | o 4: 'E' + | o 6: 'G' |/| - o | 3: 'D' + o | 5: 'F' + | | + | o 4: 'E' + |/ + | o 3: 'D' | | | o 2: 'C' - |/ + | | | o 1: 'B' |/ o 0: 'A' - $ hg rebase -s 5 -d 6 + $ hg rebase -s 7 -d 8 abort: source is ancestor of destination [255] diff --git a/tests/test-rebase-scenario-global.t b/tests/test-rebase-scenario-global.t --- a/tests/test-rebase-scenario-global.t +++ b/tests/test-rebase-scenario-global.t @@ -14,7 +14,7 @@ adding changesets adding manifests adding file changes - added 6 changesets with 5 changes to 5 files (+2 heads) + added 8 changesets with 7 changes to 7 files (+2 heads) (run 'hg heads' to see heads, 'hg merge' to merge) $ hg up tip 3 files updated, 0 files merged, 0 files removed, 0 files unresolved @@ -22,82 +22,99 @@ Rebasing -B onto F - simple rebase: +D onto H - simple rebase: $ hg clone -q -u . a a1 $ cd a1 $ hg tglog - @ 5: 'F' + @ 7: 'H' | + | o 6: 'G' + |/| + o | 5: 'F' + | | | o 4: 'E' - |/| - o | 3: 'D' + |/ + | o 3: 'D' | | | o 2: 'C' - |/ + | | | o 1: 'B' |/ o 0: 'A' - $ hg rebase -s 1 -d 5 + + $ hg rebase -s 3 -d 7 saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob) $ hg tglog - @ 5: 'B' - | - o 4: 'F' - | - | o 3: 'E' - |/| - o | 2: 'D' + @ 7: 'D' + |\ + | o 6: 'H' | | - | o 1: 'C' + | | o 5: 'G' + | |/| + | o | 4: 'F' + | | | + | | o 3: 'E' + | |/ + o | 2: 'C' + | | + o | 1: 'B' |/ o 0: 'A' $ cd .. -B onto D - intermediate point: +D onto F - intermediate point: $ hg clone -q -u . a a2 $ cd a2 - $ hg rebase -s 1 -d 3 + $ hg rebase -s 3 -d 5 saved backup bundle to $TESTTMP/a2/.hg/strip-backup/*-backup.hg (glob) $ hg tglog - @ 5: 'B' - | - | o 4: 'F' - |/ - | o 3: 'E' - |/| - o | 2: 'D' + @ 7: 'D' + |\ + | | o 6: 'H' + | |/ + | | o 5: 'G' + | |/| + | o | 4: 'F' + | | | + | | o 3: 'E' + | |/ + o | 2: 'C' | | - | o 1: 'C' + o | 1: 'B' |/ o 0: 'A' $ cd .. -C onto F - skip of E: +E onto H - skip of G: $ hg clone -q -u . a a3 $ cd a3 - $ hg rebase -s 2 -d 5 + $ hg rebase -s 4 -d 7 saved backup bundle to $TESTTMP/a3/.hg/strip-backup/*-backup.hg (glob) $ hg tglog - @ 4: 'C' + @ 6: 'E' + | + o 5: 'H' | - o 3: 'F' + o 4: 'F' | - o 2: 'D' - | + | o 3: 'D' + | | + | o 2: 'C' + | | | o 1: 'B' |/ o 0: 'A' @@ -105,21 +122,25 @@ C onto F - skip of E: $ cd .. -D onto C - rebase of a branching point (skip E): +F onto E - rebase of a branching point (skip G): $ hg clone -q -u . a a4 $ cd a4 - $ hg rebase -s 3 -d 2 + $ hg rebase -s 5 -d 4 saved backup bundle to $TESTTMP/a4/.hg/strip-backup/*-backup.hg (glob) $ hg tglog - @ 4: 'F' + @ 6: 'H' + | + o 5: 'F' | - o 3: 'D' + o 4: 'E' | - o 2: 'C' - | + | o 3: 'D' + | | + | o 2: 'C' + | | | o 1: 'B' |/ o 0: 'A' @@ -127,23 +148,27 @@ D onto C - rebase of a branching point ( $ cd .. -E onto F - merged revision having a parent in ancestors of target: +G onto H - merged revision having a parent in ancestors of target: $ hg clone -q -u . a a5 $ cd a5 - $ hg rebase -s 4 -d 5 + $ hg rebase -s 6 -d 7 saved backup bundle to $TESTTMP/a5/.hg/strip-backup/*-backup.hg (glob) $ hg tglog - @ 5: 'E' + @ 7: 'G' |\ - | o 4: 'F' + | o 6: 'H' | | + | o 5: 'F' + | | + o | 4: 'E' + |/ | o 3: 'D' | | - o | 2: 'C' - |/ + | o 2: 'C' + | | | o 1: 'B' |/ o 0: 'A' @@ -151,22 +176,26 @@ E onto F - merged revision having a pare $ cd .. -D onto B - E maintains C as parent: +F onto B - G maintains E as parent: $ hg clone -q -u . a a6 $ cd a6 - $ hg rebase -s 3 -d 1 + $ hg rebase -s 5 -d 1 saved backup bundle to $TESTTMP/a6/.hg/strip-backup/*-backup.hg (glob) $ hg tglog - @ 5: 'F' + @ 7: 'H' | - | o 4: 'E' + | o 6: 'G' |/| - o | 3: 'D' + o | 5: 'F' + | | + | o 4: 'E' | | - | o 2: 'C' + | | o 3: 'D' + | | | + +---o 2: 'C' | | o | 1: 'B' |/ @@ -177,45 +206,45 @@ D onto B - E maintains C as parent: These will fail (using --source): -E onto D - rebase onto an ancestor: +G onto F - rebase onto an ancestor: $ hg clone -q -u . a a7 $ cd a7 - $ hg rebase -s 4 -d 3 + $ hg rebase -s 6 -d 5 abort: source is descendant of destination [255] -D onto E - rebase onto a descendant: +F onto G - rebase onto a descendant: - $ hg rebase -s 3 -d 4 + $ hg rebase -s 5 -d 6 abort: source is ancestor of destination [255] -E onto B - merge revision with both parents not in ancestors of target: +G onto B - merge revision with both parents not in ancestors of target: - $ hg rebase -s 4 -d 1 - abort: cannot use revision 4 as base, result would have 3 parents + $ hg rebase -s 6 -d 1 + abort: cannot use revision 6 as base, result would have 3 parents [255] These will abort gracefully (using --base): -E onto E - rebase onto same changeset: +G onto G - rebase onto same changeset: - $ hg rebase -b 4 -d 4 + $ hg rebase -b 6 -d 6 nothing to rebase [1] -E onto D - rebase onto an ancestor: +G onto F - rebase onto an ancestor: - $ hg rebase -b 4 -d 3 + $ hg rebase -b 6 -d 5 nothing to rebase [1] -D onto E - rebase onto a descendant: +F onto G - rebase onto a descendant: - $ hg rebase -b 3 -d 4 + $ hg rebase -b 5 -d 6 nothing to rebase [1]