Mercurial > public > mercurial-scm > hg
diff tests/test-rebase-collapse.t @ 12608:16b854cb80f1
tests: unify test-rebase*
author | Adrian Buehlmann <adrian@cadifra.com> |
---|---|
date | Fri, 01 Oct 2010 16:10:06 +0200 |
parents | tests/test-rebase-collapse@2313dc4d9817 |
children | 6cc4b14fb76b |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-rebase-collapse.t Fri Oct 01 16:10:06 2010 +0200 @@ -0,0 +1,441 @@ + $ cat >> $HGRCPATH <<EOF + > [extensions] + > graphlog= + > rebase= + > + > [alias] + > tglog = log -G --template "{rev}: '{desc}' {branches}\n" + > EOF + +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 tglog + @ 7: 'H' + | + | o 6: 'G' + |/| + o | 5: 'F' + | | + | o 4: 'E' + |/ + | o 3: 'D' + | | + | o 2: 'C' + | | + | o 1: 'B' + |/ + o 0: 'A' + + $ cd .. + + +Rebasing B onto H: + + $ hg clone -q -u 3 a a1 + $ cd a1 + + $ hg rebase --collapse --keepbranches + saved backup bundle to */.hg/strip-backup/*-backup.hg (glob) + + $ hg tglog + @ 5: 'Collapsed revision + | * B + | * C + | * D' + o 4: 'H' + | + | o 3: 'G' + |/| + o | 2: 'F' + | | + | o 1: 'E' + |/ + o 0: 'A' + + $ hg manifest + A + B + C + D + F + H + + $ cd .. + + +Rebasing G onto H: + + $ hg clone -q -u . a a2 + $ cd a2 + + $ hg rebase --base 6 --collapse + saved backup bundle to */.hg/strip-backup/*-backup.hg (glob) + + $ hg tglog + @ 6: 'Collapsed revision + | * E + | * G' + o 5: 'H' + | + o 4: 'F' + | + | o 3: 'D' + | | + | o 2: 'C' + | | + | o 1: 'B' + |/ + o 0: 'A' + + $ hg manifest + A + E + F + H + + $ cd .. + + +Create repo b: + + $ hg init b + $ cd b + + $ echo A > A + $ hg ci -Am A + adding A + $ echo B > B + $ hg ci -Am B + adding B + + $ hg up -q 0 + + $ echo C > C + $ hg ci -Am C + adding C + created new head + + $ hg merge + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) + + $ echo D > D + $ hg ci -Am D + adding D + + $ hg up -q 1 + + $ echo E > E + $ hg ci -Am E + adding E + created new head + + $ echo F > F + $ hg ci -Am F + adding F + + $ hg merge + 2 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 0 + + $ echo H > H + $ hg ci -Am H + adding H + created new head + + $ hg tglog + @ 7: 'H' + | + | o 6: 'G' + | |\ + | | o 5: 'F' + | | | + | | o 4: 'E' + | | | + | o | 3: 'D' + | |\| + | o | 2: 'C' + |/ / + | o 1: 'B' + |/ + o 0: 'A' + + $ cd .. + + +Rebase and collapse - more than one external (fail): + + $ hg clone -q -u . b b1 + $ cd b1 + + $ hg rebase -s 2 --collapse + abort: unable to collapse, there is more than one external parent + [255] + +Rebase and collapse - E onto H: + + $ hg rebase -s 4 --collapse + saved backup bundle to */.hg/strip-backup/*-backup.hg (glob) + + $ hg tglog + @ 5: 'Collapsed revision + |\ * E + | | * F + | | * G' + | o 4: 'H' + | | + o | 3: 'D' + |\ \ + | o | 2: 'C' + | |/ + o / 1: 'B' + |/ + o 0: 'A' + + $ hg manifest + A + B + C + D + E + F + H + + $ cd .. + + +Create repo c: + + $ hg init c + $ cd c + + $ echo A > A + $ hg ci -Am A + adding A + $ echo B > B + $ hg ci -Am B + adding B + + $ hg up -q 0 + + $ echo C > C + $ hg ci -Am C + adding C + created new head + + $ hg merge + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) + + $ echo D > D + $ hg ci -Am D + adding D + + $ hg up -q 1 + + $ echo E > E + $ hg ci -Am E + adding E + created new head + $ echo F > E + $ hg ci -m 'F' + + $ echo G > G + $ hg ci -Am G + adding G + + $ hg merge + 2 files updated, 0 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) + + $ hg ci -m H + + $ hg up -q 0 + + $ echo I > I + $ hg ci -Am I + adding I + created new head + + $ hg tglog + @ 8: 'I' + | + | o 7: 'H' + | |\ + | | o 6: 'G' + | | | + | | o 5: 'F' + | | | + | | o 4: 'E' + | | | + | o | 3: 'D' + | |\| + | o | 2: 'C' + |/ / + | o 1: 'B' + |/ + o 0: 'A' + + $ cd .. + + +Rebase and collapse - E onto I: + + $ hg clone -q -u . c c1 + $ cd c1 + + $ hg rebase -s 4 --collapse + merging E + saved backup bundle to */.hg/strip-backup/*-backup.hg (glob) + + $ hg tglog + @ 5: 'Collapsed revision + |\ * E + | | * F + | | * G + | | * H' + | o 4: 'I' + | | + o | 3: 'D' + |\ \ + | o | 2: 'C' + | |/ + o / 1: 'B' + |/ + o 0: 'A' + + $ hg manifest + A + B + C + D + E + G + I + + $ cat E + F + + $ cd .. + + +Create repo d: + + $ hg init d + $ cd d + + $ 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 + + $ hg up -q 1 + + $ echo D > D + $ hg ci -Am D + adding D + created new head + $ hg merge + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + (branch merge, don't forget to commit) + + $ hg ci -m E + + $ hg up -q 0 + + $ echo F > F + $ hg ci -Am F + adding F + created new head + + $ hg tglog + @ 5: 'F' + | + | o 4: 'E' + | |\ + | | o 3: 'D' + | | | + | o | 2: 'C' + | |/ + | o 1: 'B' + |/ + o 0: 'A' + + $ cd .. + + +Rebase and collapse - B onto F: + + $ hg clone -q -u . d d1 + $ cd d1 + + $ hg rebase -s 1 --collapse + saved backup bundle to */.hg/strip-backup/*-backup.hg (glob) + + $ hg tglog + @ 2: 'Collapsed revision + | * B + | * C + | * D + | * E' + o 1: 'F' + | + o 0: 'A' + + $ hg manifest + A + B + C + D + F +