diff options
author | Lorry <lorry@roadtrain.codethink.co.uk> | 2012-08-22 14:49:51 +0100 |
---|---|---|
committer | Lorry <lorry@roadtrain.codethink.co.uk> | 2012-08-22 14:49:51 +0100 |
commit | a498da43c7fdb9f24b73680c02a4a3588cc62d9a (patch) | |
tree | daf8119dae1749b5165b68033a1b23a7375ce9ce /tests/test-mq-qdelete.t | |
download | mercurial-tarball-a498da43c7fdb9f24b73680c02a4a3588cc62d9a.tar.gz |
Tarball conversion
Diffstat (limited to 'tests/test-mq-qdelete.t')
-rw-r--r-- | tests/test-mq-qdelete.t | 197 |
1 files changed, 197 insertions, 0 deletions
diff --git a/tests/test-mq-qdelete.t b/tests/test-mq-qdelete.t new file mode 100644 index 0000000..2729a4d --- /dev/null +++ b/tests/test-mq-qdelete.t @@ -0,0 +1,197 @@ + $ echo "[extensions]" >> $HGRCPATH + $ echo "mq=" >> $HGRCPATH + + $ hg init a + $ cd a + + $ echo 'base' > base + $ hg ci -Ambase -d '1 0' + adding base + + $ hg qnew -d '1 0' pa + $ hg qnew -d '1 0' pb + $ hg qnew -d '1 0' pc + + $ hg qdel + abort: qdelete requires at least one revision or patch name + [255] + + $ hg qdel pc + abort: cannot delete applied patch pc + [255] + + $ hg qpop + popping pc + now at: pb + +Delete the same patch twice in one command (issue2427) + + $ hg qdel pc pc + + $ hg qseries + pa + pb + + $ ls .hg/patches + pa + pb + series + status + + $ hg qpop + popping pb + now at: pa + + $ hg qdel -k 1 + + $ ls .hg/patches + pa + pb + series + status + + $ hg qdel -r pa + patch pa finalized without changeset message + + $ hg qapplied + + $ hg log --template '{rev} {desc}\n' + 1 [mq]: pa + 0 base + + $ hg qnew pd + $ hg qnew pe + $ hg qnew pf + + $ hg qdel -r pe + abort: cannot delete revision 3 above applied patches + [255] + + $ hg qdel -r qbase:pe + patch pd finalized without changeset message + patch pe finalized without changeset message + + $ hg qapplied + pf + + $ hg log --template '{rev} {desc}\n' + 4 [mq]: pf + 3 [mq]: pe + 2 [mq]: pd + 1 [mq]: pa + 0 base + + $ cd .. + + $ hg init b + $ cd b + + $ echo 'base' > base + $ hg ci -Ambase -d '1 0' + adding base + + $ hg qfinish + abort: no revisions specified + [255] + + $ hg qfinish -a + no patches applied + + $ hg qnew -d '1 0' pa + $ hg qnew -d '1 0' pb + $ hg qnew pc # XXX fails to apply by /usr/bin/patch if we put a date + + $ hg qfinish 0 + abort: revision 0 is not managed + [255] + + $ hg qfinish pb + abort: cannot delete revision 2 above applied patches + [255] + + $ hg qpop + popping pc + now at: pb + + $ hg qfinish -a pc + abort: unknown revision 'pc'! + [255] + + $ hg qpush + applying pc + patch pc is empty + now at: pc + + $ hg qfinish qbase:pb + patch pa finalized without changeset message + patch pb finalized without changeset message + + $ hg qapplied + pc + + $ hg log --template '{rev} {desc}\n' + 3 imported patch pc + 2 [mq]: pb + 1 [mq]: pa + 0 base + + $ hg qfinish -a pc + patch pc finalized without changeset message + + $ hg qapplied + + $ hg log --template '{rev} {desc}\n' + 3 imported patch pc + 2 [mq]: pb + 1 [mq]: pa + 0 base + + $ ls .hg/patches + series + status + +qdel -k X && hg qimp -e X used to trigger spurious output with versioned queues + + $ hg init --mq + $ hg qimport -r 3 + $ hg qpop + popping 3.diff + patch queue now empty + $ hg qdel -k 3.diff + $ hg qimp -e 3.diff + adding 3.diff to series file + $ hg qfinish -a + no patches applied + + +resilience to inconsistency: qfinish -a with applied patches not in series + + $ hg qser + 3.diff + $ hg qapplied + $ hg qpush + applying 3.diff + patch 3.diff is empty + now at: 3.diff + $ echo next >> base + $ hg qrefresh -d '1 0' + $ echo > .hg/patches/series # remove 3.diff from series to confuse mq + $ hg qfinish -a + revision 47dfa8501675 refers to unknown patches: 3.diff + +more complex state 'both known and unknown patches + + $ echo hip >> base + $ hg qnew -f -d '1 0' -m 4 4.diff + $ echo hop >> base + $ hg qnew -f -d '1 0' -m 5 5.diff + $ echo > .hg/patches/series # remove 4.diff and 5.diff from series to confuse mq + $ echo hup >> base + $ hg qnew -f -d '1 0' -m 6 6.diff + $ echo pup > base + $ hg qfinish -a + warning: uncommitted changes in the working directory + revision 2b1c98802260 refers to unknown patches: 5.diff + revision 33a6861311c0 refers to unknown patches: 4.diff + + $ cd .. |