Mercurial > evolve
diff tests/test-pick.t @ 4484:302cd64f71e1 stable
tests: rename test-grab to test-pick
This match the new command name.
author | Pierre-Yves David <pierre-yves.david@octobus.net> |
---|---|
date | Wed, 10 Apr 2019 15:47:28 +0200 |
parents | tests/test-grab.t@424b498aac00 |
children | e3785a8d0712 |
line wrap: on
line diff
--- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-pick.t Wed Apr 10 15:47:28 2019 +0200 @@ -0,0 +1,336 @@ +Test for the pick 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 pick + 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 pick + + $ hg pick 1f0dee641bb7 -r 7c3bad9141dc + abort: specify just one revision + [255] + +Specifying no revisions to pick + + $ hg pick + abort: empty revision set + [255] + +Continuing without interrupted pick + + $ hg pick --continue + abort: no interrupted pick state exists + [255] + +Aborting without interrupted pick + + $ 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 pick 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 pick + + $ 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 pick 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 pick 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 picking 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