Mercurial > evolve
view tests/test-grab.t @ 4461:7f87ef9f0224 stable
evolve: remove unused StringIO import
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Wed, 13 Feb 2019 21:56:05 +0800 |
parents | 424b498aac00 |
children | a2fdbece7ce1 054ff759f2fd |
line wrap: on
line source
Test for the grab command $ cat >> $HGRCPATH <<EOF > [alias] > glog = log -G -T "{rev}:{node|short} {desc}\n" > [extensions] > EOF $ echo "evolve=$(echo $(dirname $TESTDIR))/hgext3rd/evolve/" >> $HGRCPATH $ mkcommit() { > echo "$1" > "$1" > hg add "$1" > hg ci -m "add $1" > } $ hg init repo $ cd repo $ hg help grab hg pick [-r] rev aliases: grab move a commit on the top of working directory parent and updates to it. options: -r --rev REV revision to pick -c --continue continue interrupted pick -a --abort abort interrupted pick (some details hidden, use --verbose to show complete help) $ mkcommit a $ mkcommit b $ mkcommit c $ hg glog @ 2:4538525df7e2 add c | o 1:7c3bad9141dc add b | o 0:1f0dee641bb7 add a Grabbing an ancestor $ hg pick -r 7c3bad9141dc abort: cannot pick an ancestor revision [255] Grabbing the working directory parent $ hg pick -r . abort: cannot pick an ancestor revision [255] Specifying multiple revisions to grab $ hg pick 1f0dee641bb7 -r 7c3bad9141dc abort: specify just one revision [255] Specifying no revisions to grab $ hg pick abort: empty revision set [255] Continuing without interrupted grab $ hg pick --continue abort: no interrupted pick state exists [255] Aborting without interrupted grab $ hg pick --abort abort: no interrupted pick state exists [255] Specifying both continue and revs $ hg up 1f0dee641bb7 0 files updated, 0 files merged, 2 files removed, 0 files unresolved $ hg pick -r 4538525df7e2 --continue abort: cannot specify both --continue and revision [255] Making new branch heads $ mkcommit x created new head $ mkcommit y $ hg glog @ 4:d46dc301d92f add y | o 3:8e224524cd09 add x | | o 2:4538525df7e2 add c | | | o 1:7c3bad9141dc add b |/ o 0:1f0dee641bb7 add a Grabbing a revision $ hg pick 7c3bad9141dc picking 1:7c3bad9141dc "add b" 1 new orphan changesets $ hg glog @ 5:7c15c05db6fa add b | o 4:d46dc301d92f add y | o 3:8e224524cd09 add x | | * 2:4538525df7e2 add c | | | x 1:7c3bad9141dc add b |/ o 0:1f0dee641bb7 add a When grab does not create any changes $ hg graft -r 4538525df7e2 grafting 2:4538525df7e2 "add c" $ hg glog @ 6:c4636a81ebeb add c | o 5:7c15c05db6fa add b | o 4:d46dc301d92f add y | o 3:8e224524cd09 add x | | * 2:4538525df7e2 add c | | | x 1:7c3bad9141dc add b |/ o 0:1f0dee641bb7 add a $ hg pick -r 4538525df7e2 picking 2:4538525df7e2 "add c" note: picking 2:4538525df7e2 created no changes to commit $ hg glog @ 6:c4636a81ebeb add c | o 5:7c15c05db6fa add b | o 4:d46dc301d92f add y | o 3:8e224524cd09 add x | o 0:1f0dee641bb7 add a interrupted grab $ hg up d46dc301d92f 0 files updated, 0 files merged, 2 files removed, 0 files unresolved $ echo foo > c $ hg ci -Aqm "foo to c" $ hg pick -r c4636a81ebeb picking 6:c4636a81ebeb "add c" merging c warning: conflicts while merging c! (edit, then use 'hg resolve --mark') unresolved merge conflicts (see hg help resolve) [1] $ echo foobar > c $ hg resolve --all --mark (no more unresolved files) continue: hg pick --continue $ hg pick --continue $ hg glog @ 8:44e155eb95c7 add c | o 7:2ccc03d1d096 foo to c | | o 5:7c15c05db6fa add b |/ o 4:d46dc301d92f add y | o 3:8e224524cd09 add x | o 0:1f0dee641bb7 add a When interrupted grab results in no changes to commit $ hg up d46dc301d92f 0 files updated, 0 files merged, 1 files removed, 0 files unresolved $ echo bar > c $ hg add c $ hg ci -m "foo to c" created new head $ hg up 44e155eb95c7 1 files updated, 0 files merged, 0 files removed, 0 files unresolved $ hg pick 4e04628911f6 picking 9:4e04628911f6 "foo to c" merging c warning: conflicts while merging c! (edit, then use 'hg resolve --mark') unresolved merge conflicts (see hg help resolve) [1] $ echo foobar > c $ hg resolve -m (no more unresolved files) continue: hg pick --continue $ hg pick --continue note: picking 9:4e04628911f6 created no changes to commit Testing the abort functionality of hg pick $ echo foo > b $ hg ci -Aqm "foo to b" $ hg glog -r .^:: @ 10:c437988de89f foo to b | o 8:44e155eb95c7 add c | ~ $ hg pick -r 7c15c05db6fa picking 5:7c15c05db6fa "add b" merging b warning: conflicts while merging b! (edit, then use 'hg resolve --mark') unresolved merge conflicts (see hg help resolve) [1] $ hg pick --abort aborting pick, updating to c437988de89f $ hg glog @ 10:c437988de89f foo to b | o 8:44e155eb95c7 add c | o 7:2ccc03d1d096 foo to c | | o 5:7c15c05db6fa add b |/ o 4:d46dc301d92f add y | o 3:8e224524cd09 add x | o 0:1f0dee641bb7 add a Trying to grab a public changeset $ hg phase -r 7c15c05db6fa -p $ hg pick -r 7c15c05db6fa abort: cannot pick public changesets: 7c15c05db6fa (see 'hg help phases' for details) [255] $ hg glog @ 10:c437988de89f foo to b | o 8:44e155eb95c7 add c | o 7:2ccc03d1d096 foo to c | | o 5:7c15c05db6fa add b |/ o 4:d46dc301d92f add y | o 3:8e224524cd09 add x | o 0:1f0dee641bb7 add a Checking phase preservation while grabbing secret changeset In case of merge conflicts $ hg phase -r 7c15c05db6fa -s -f $ hg pick -r 7c15c05db6fa picking 5:7c15c05db6fa "add b" merging b warning: conflicts while merging b! (edit, then use 'hg resolve --mark') unresolved merge conflicts (see hg help resolve) [1] $ echo bar > b $ hg resolve -m (no more unresolved files) continue: hg pick --continue $ hg pick --continue $ hg phase -r . 11: secret No merge conflicts $ hg up d46dc301d92f 0 files updated, 0 files merged, 3 files removed, 0 files unresolved $ echo foo > l $ hg add l $ hg ci -qm "added l" --secret $ hg phase -r . 12: secret $ hg glog @ 12:508d572e7053 added l | | o 11:10427de9e26e add b | | | o 10:c437988de89f foo to b | | | o 8:44e155eb95c7 add c | | | o 7:2ccc03d1d096 foo to c |/ o 4:d46dc301d92f add y | o 3:8e224524cd09 add x | o 0:1f0dee641bb7 add a $ hg up 10427de9e26e 3 files updated, 0 files merged, 1 files removed, 0 files unresolved $ hg pick -r 508d572e7053 picking 12:508d572e7053 "added l" $ hg phase -r . 13: secret