Mercurial > hg
view tests/test-rebase-parameters.t @ 14065:8f7132fa5e59
pure mpatch: avoid using list.insert(0, ...)
In Python lists are implemented as arrays with overallocation. As a
result, list.insert(0, ...) is O(n), whereas list.append() has an
amortised running time of O(1). Reversing the internal representation
of the list should cause a slight speedup for pure Python builds.
author | Dan Villiom Podlaski Christiansen <danchr@gmail.com> |
---|---|
date | Sat, 30 Apr 2011 15:05:34 +0200 |
parents | 0995eee8ffe4 |
children | e83567686d66 |
line wrap: on
line source
$ cat >> $HGRCPATH <<EOF > [extensions] > graphlog= > rebase= > > [alias] > tglog = log -G --template "{rev}: '{desc}' {branches}\n" > EOF $ hg init a $ cd a $ echo c1 > c1 $ hg ci -Am c1 adding c1 $ echo c2 > c2 $ hg ci -Am c2 adding c2 $ echo c3 > c3 $ hg ci -Am c3 adding c3 $ hg up -q -C 1 $ echo l1 > l1 $ hg ci -Am l1 adding l1 created new head $ echo l2 > l2 $ hg ci -Am l2 adding l2 $ echo l3 > l3 $ hg ci -Am l3 adding l3 $ hg up -q -C 2 $ echo r1 > r1 $ hg ci -Am r1 adding r1 $ echo r2 > r2 $ hg ci -Am r2 adding r2 $ hg tglog @ 7: 'r2' | o 6: 'r1' | | o 5: 'l3' | | | o 4: 'l2' | | | o 3: 'l1' | | o | 2: 'c3' |/ o 1: 'c2' | o 0: 'c1' $ cd .. These fail: $ hg clone -q -u . a a1 $ cd a1 $ hg rebase --continue --abort abort: cannot use both abort and continue [255] $ hg rebase --continue --collapse abort: cannot use collapse with continue or abort [255] $ hg rebase --continue --dest 4 abort: abort and continue do not allow specifying revisions [255] $ hg rebase --base 5 --source 4 abort: cannot specify both a revision and a base [255] $ hg rebase nothing to rebase [1] $ hg up -q 6 $ hg rebase nothing to rebase [1] These work: Rebase with no arguments (from 3 onto 7): $ hg up -q -C 5 $ hg rebase saved backup bundle to $TESTTMP/a1/.hg/strip-backup/*-backup.hg (glob) $ hg tglog @ 7: 'l3' | o 6: 'l2' | o 5: 'l1' | o 4: 'r2' | o 3: 'r1' | o 2: 'c3' | o 1: 'c2' | o 0: 'c1' Try to rollback after a rebase (fail): $ hg rollback no rollback information available [1] $ cd .. Rebase with base == '.' => same as no arguments (from 3 onto 7): $ hg clone -q -u 5 a a2 $ cd a2 $ hg rebase --base . saved backup bundle to $TESTTMP/a2/.hg/strip-backup/*-backup.hg (glob) $ hg tglog @ 7: 'l3' | o 6: 'l2' | o 5: 'l1' | o 4: 'r2' | o 3: 'r1' | o 2: 'c3' | o 1: 'c2' | o 0: 'c1' $ cd .. Rebase with dest == `hg branch` => same as no arguments (from 3 onto 7): $ hg clone -q -u 5 a a3 $ cd a3 $ hg rebase --dest `hg branch` saved backup bundle to $TESTTMP/a3/.hg/strip-backup/*-backup.hg (glob) $ hg tglog @ 7: 'l3' | o 6: 'l2' | o 5: 'l1' | o 4: 'r2' | o 3: 'r1' | o 2: 'c3' | o 1: 'c2' | o 0: 'c1' $ cd .. Specify only source (from 4 onto 7): $ hg clone -q -u . a a4 $ cd a4 $ hg rebase --source 4 saved backup bundle to $TESTTMP/a4/.hg/strip-backup/*-backup.hg (glob) $ hg tglog @ 7: 'l3' | o 6: 'l2' |\ | o 5: 'r2' | | | o 4: 'r1' | | o | 3: 'l1' | | | o 2: 'c3' |/ o 1: 'c2' | o 0: 'c1' $ cd .. Specify only dest (from 3 onto 6): $ hg clone -q -u 5 a a5 $ cd a5 $ hg rebase --dest 6 saved backup bundle to $TESTTMP/a5/.hg/strip-backup/*-backup.hg (glob) $ hg tglog @ 7: 'l3' | o 6: 'l2' | o 5: 'l1' | | o 4: 'r2' |/ o 3: 'r1' | o 2: 'c3' | o 1: 'c2' | o 0: 'c1' $ cd .. Specify only base (from 3 onto 7): $ hg clone -q -u . a a6 $ cd a6 $ hg rebase --base 5 saved backup bundle to $TESTTMP/a6/.hg/strip-backup/*-backup.hg (glob) $ hg tglog @ 7: 'l3' | o 6: 'l2' | o 5: 'l1' | o 4: 'r2' | o 3: 'r1' | o 2: 'c3' | o 1: 'c2' | o 0: 'c1' $ cd .. Specify source and dest (from 4 onto 6): $ hg clone -q -u . a a7 $ cd a7 $ hg rebase --source 4 --dest 6 saved backup bundle to $TESTTMP/a7/.hg/strip-backup/*-backup.hg (glob) $ hg tglog @ 7: 'l3' | o 6: 'l2' |\ | | o 5: 'r2' | |/ | o 4: 'r1' | | o | 3: 'l1' | | | o 2: 'c3' |/ o 1: 'c2' | o 0: 'c1' $ cd .. Specify base and dest (from 3 onto 6): $ hg clone -q -u . a a8 $ cd a8 $ hg rebase --base 4 --dest 6 saved backup bundle to $TESTTMP/a8/.hg/strip-backup/*-backup.hg (glob) $ hg tglog @ 7: 'l3' | o 6: 'l2' | o 5: 'l1' | | o 4: 'r2' |/ o 3: 'r1' | o 2: 'c3' | o 1: 'c2' | o 0: 'c1' $ cd .. Test --tool parameter: $ hg init b $ cd b $ echo c1 > c1 $ hg ci -Am c1 adding c1 $ echo c2 > c2 $ hg ci -Am c2 adding c2 $ hg up -q 0 $ echo c2b > c2 $ hg ci -Am c2b adding c2 created new head $ cd .. $ hg clone -q -u . b b1 $ cd b1 $ hg rebase -s 2 -d 1 --tool internal:local saved backup bundle to $TESTTMP/b1/.hg/strip-backup/*-backup.hg (glob) $ hg cat c2 c2 $ cd .. $ hg clone -q -u . b b2 $ cd b2 $ hg rebase -s 2 -d 1 --tool internal:other saved backup bundle to $TESTTMP/b2/.hg/strip-backup/*-backup.hg (glob) $ hg cat c2 c2b $ cd .. $ hg clone -q -u . b b3 $ cd b3 $ hg rebase -s 2 -d 1 --tool internal:fail abort: unresolved conflicts (see hg resolve, then hg rebase --continue) [255] $ hg resolve -l U c2 $ hg resolve -m c2 $ hg rebase -c --tool internal:fail tool option will be ignored saved backup bundle to $TESTTMP/b3/.hg/strip-backup/*-backup.hg (glob)