diff -r 8b12768b15e2 -r 3160698100c6 tests/test-mq-qnew.t --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/tests/test-mq-qnew.t Sun Sep 26 13:43:21 2010 -0500 @@ -0,0 +1,223 @@ + + $ catpatch() { + > cat $1 | sed -e "s/^\(# Parent \).*/\1/" + > } + $ echo "[extensions]" >> $HGRCPATH + $ echo "mq=" >> $HGRCPATH + $ runtest() { + > hg init mq + > cd mq + > + > echo a > a + > hg ci -Ama + > + > echo '% qnew should refuse bad patch names' + > hg qnew series + > hg qnew status + > hg qnew guards + > hg qnew .hgignore + > hg qnew .mqfoo + > hg qnew 'foo#bar' + > hg qnew 'foo:bar' + > + > hg qinit -c + > + > echo '% qnew with name containing slash' + > hg qnew foo/bar.patch + > hg qseries + > hg qpop + > hg qdelete foo/bar.patch + > + > echo '% qnew with uncommitted changes' + > echo a > somefile + > hg add somefile + > hg qnew uncommitted.patch + > hg st + > hg qseries + > + > echo '% qnew implies add' + > hg -R .hg/patches st + > + > echo '% qnew missing' + > hg qnew missing.patch missing + > + > echo '% qnew -m' + > hg qnew -m 'foo bar' mtest.patch + > catpatch .hg/patches/mtest.patch + > + > echo '% qnew twice' + > hg qnew first.patch + > hg qnew first.patch + > + > touch ../first.patch + > hg qimport ../first.patch + > + > echo '% qnew -f from a subdirectory' + > hg qpop -a + > mkdir d + > cd d + > echo b > b + > hg ci -Am t + > echo b >> b + > hg st + > hg qnew -g -f p + > catpatch ../.hg/patches/p + > + > echo '% qnew -u with no username configured' + > HGUSER= hg qnew -u blue red + > catpatch ../.hg/patches/red + > + > echo '% qnew -e -u with no username configured' + > HGUSER= hg qnew -e -u chartreuse fucsia + > catpatch ../.hg/patches/fucsia + > + > echo '% fail when trying to import a merge' + > hg init merge + > cd merge + > touch a + > hg ci -Am null + > echo a >> a + > hg ci -m a + > hg up -r 0 + > echo b >> a + > hg ci -m b + > hg merge -f 1 + > hg resolve --mark a + > hg qnew -f merge + > + > cd ../../.. + > rm -r mq + > } + +plain headers + + $ echo "[mq]" >> $HGRCPATH + $ echo "plain=true" >> $HGRCPATH + $ mkdir sandbox + $ (cd sandbox ; runtest) + adding a + % qnew should refuse bad patch names + abort: "series" cannot be used as the name of a patch + abort: "status" cannot be used as the name of a patch + abort: "guards" cannot be used as the name of a patch + abort: ".hgignore" cannot be used as the name of a patch + abort: ".mqfoo" cannot be used as the name of a patch + abort: "foo#bar" cannot be used as the name of a patch + abort: "foo:bar" cannot be used as the name of a patch + % qnew with name containing slash + foo/bar.patch + popping foo/bar.patch + patch queue now empty + % qnew with uncommitted changes + uncommitted.patch + % qnew implies add + A .hgignore + A series + A uncommitted.patch + % qnew missing + abort: missing: No such file or directory + % qnew -m + foo bar + + % qnew twice + abort: patch "first.patch" already exists + abort: patch "first.patch" already exists + % qnew -f from a subdirectory + popping first.patch + popping mtest.patch + popping uncommitted.patch + patch queue now empty + adding d/b + M d/b + diff --git a/d/b b/d/b + --- a/d/b + +++ b/d/b + @@ -1,1 +1,2 @@ + b + +b + % qnew -u with no username configured + From: blue + + % qnew -e -u with no username configured + From: chartreuse + + % fail when trying to import a merge + adding a + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + created new head + merging a + warning: conflicts during merge. + merging a failed! + 0 files updated, 0 files merged, 0 files removed, 1 files unresolved + use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + abort: cannot manage merge changesets + $ rm -r sandbox + +hg headers + + $ echo "plain=false" >> $HGRCPATH + $ mkdir sandbox + $ (cd sandbox ; runtest) + adding a + % qnew should refuse bad patch names + abort: "series" cannot be used as the name of a patch + abort: "status" cannot be used as the name of a patch + abort: "guards" cannot be used as the name of a patch + abort: ".hgignore" cannot be used as the name of a patch + abort: ".mqfoo" cannot be used as the name of a patch + abort: "foo#bar" cannot be used as the name of a patch + abort: "foo:bar" cannot be used as the name of a patch + % qnew with name containing slash + foo/bar.patch + popping foo/bar.patch + patch queue now empty + % qnew with uncommitted changes + uncommitted.patch + % qnew implies add + A .hgignore + A series + A uncommitted.patch + % qnew missing + abort: missing: No such file or directory + % qnew -m + # HG changeset patch + # Parent + foo bar + + % qnew twice + abort: patch "first.patch" already exists + abort: patch "first.patch" already exists + % qnew -f from a subdirectory + popping first.patch + popping mtest.patch + popping uncommitted.patch + patch queue now empty + adding d/b + M d/b + # HG changeset patch + # Parent + diff --git a/d/b b/d/b + --- a/d/b + +++ b/d/b + @@ -1,1 +1,2 @@ + b + +b + % qnew -u with no username configured + # HG changeset patch + # Parent + # User blue + % qnew -e -u with no username configured + # HG changeset patch + # Parent + # User chartreuse + % fail when trying to import a merge + adding a + 1 files updated, 0 files merged, 0 files removed, 0 files unresolved + created new head + merging a + warning: conflicts during merge. + merging a failed! + 0 files updated, 0 files merged, 0 files removed, 1 files unresolved + use 'hg resolve' to retry unresolved file merges or 'hg update -C .' to abandon + abort: cannot manage merge changesets + $ rm -r sandbox