Mercurial > public > mercurial-scm > hg-stable
diff tests/test-rebase-interruptions.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-interruptions@2313dc4d9817 |
children | b19b4c1df066 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-rebase-interruptions.t Fri Oct 01 16:10:06 2010 +0200 @@ -0,0 +1,194 @@ + $ cat >> $HGRCPATH <<EOF + > [extensions] + > graphlog= + > rebase= + > + > [alias] + > tglog = log -G --template "{rev}: '{desc}' {branches}\n" + > EOF + + + $ 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 >> A + $ hg ci -m C + + $ hg up -q -C 0 + + $ echo D >> A + $ hg ci -m D + created new head + + $ echo E > E + $ hg ci -Am E + adding E + + $ cd .. + + +Changes during an interruption - continue: + + $ hg clone -q -u . a a1 + $ cd a1 + + $ hg tglog + @ 4: 'E' + | + o 3: 'D' + | + | o 2: 'C' + | | + | o 1: 'B' + |/ + o 0: 'A' + +Rebasing B onto E: + + $ hg rebase -s 1 -d 4 + merging A + warning: conflicts during merge. + merging A failed! + abort: fix unresolved conflicts with hg resolve then run hg rebase --continue + [255] + +Force a commit on C during the interruption: + + $ hg up -q -C 2 + + $ echo 'Extra' > Extra + $ hg add Extra + $ hg ci -m 'Extra' + + $ hg tglog + @ 6: 'Extra' + | + | o 5: 'B' + | | + | o 4: 'E' + | | + | o 3: 'D' + | | + o | 2: 'C' + | | + o | 1: 'B' + |/ + o 0: 'A' + +Resume the rebasing: + + $ hg rebase --continue + merging A + warning: conflicts during merge. + merging A failed! + abort: fix unresolved conflicts with hg resolve then run hg rebase --continue + [255] + +Solve the conflict and go on: + + $ echo 'conflict solved' > A + $ rm A.orig + $ hg resolve -m A + + $ hg rebase --continue + warning: new changesets detected on source branch, not stripping + + $ hg tglog + @ 7: 'C' + | + | o 6: 'Extra' + | | + o | 5: 'B' + | | + o | 4: 'E' + | | + o | 3: 'D' + | | + | o 2: 'C' + | | + | o 1: 'B' + |/ + o 0: 'A' + + $ cd .. + + +Changes during an interruption - abort: + + $ hg clone -q -u . a a2 + $ cd a2 + + $ hg tglog + @ 4: 'E' + | + o 3: 'D' + | + | o 2: 'C' + | | + | o 1: 'B' + |/ + o 0: 'A' + +Rebasing B onto E: + + $ hg rebase -s 1 -d 4 + merging A + warning: conflicts during merge. + merging A failed! + abort: fix unresolved conflicts with hg resolve then run hg rebase --continue + [255] + +Force a commit on B' during the interruption: + + $ hg up -q -C 5 + + $ echo 'Extra' > Extra + $ hg add Extra + $ hg ci -m 'Extra' + + $ hg tglog + @ 6: 'Extra' + | + o 5: 'B' + | + o 4: 'E' + | + o 3: 'D' + | + | o 2: 'C' + | | + | o 1: 'B' + |/ + o 0: 'A' + +Abort the rebasing: + + $ hg rebase --abort + warning: new changesets detected on target branch, can't abort + [255] + + $ hg tglog + @ 6: 'Extra' + | + o 5: 'B' + | + o 4: 'E' + | + o 3: 'D' + | + | o 2: 'C' + | | + | o 1: 'B' + |/ + o 0: 'A' + + $ cd .. +