--- a/hgext/mq.py Sun Nov 18 17:25:28 2007 +0100
+++ b/hgext/mq.py Tue Nov 20 14:41:47 2007 +0100
@@ -610,15 +610,14 @@
m, a, r, d = repo.status(files=fns, match=match)[:4]
else:
m, a, r, d = self.check_localchanges(repo, force)
+ fns, match, anypats = cmdutil.matchpats(repo, m + a + r)
commitfiles = m + a + r
self.check_toppatch(repo)
wlock = repo.wlock()
try:
insert = self.full_series_end()
- if msg:
- n = repo.commit(commitfiles, msg, force=True)
- else:
- n = repo.commit(commitfiles, "[mq]: %s" % patch, force=True)
+ commitmsg = msg and msg or ("[mq]: %s" % patch)
+ n = repo.commit(commitfiles, commitmsg, match=match, force=True)
if n == None:
raise util.Abort(_("repo commit failed"))
self.full_series[insert:insert] = [patch]
--- a/tests/test-mq Sun Nov 18 17:25:28 2007 +0100
+++ b/tests/test-mq Tue Nov 20 14:41:47 2007 +0100
@@ -84,6 +84,27 @@
cd a
+echo a > somefile
+hg add somefile
+
+echo % qnew with uncommitted changes
+
+hg qnew uncommitted.patch
+hg st
+hg qseries
+
+echo '% qnew with uncommitted changes and missing file (issue 803)'
+
+hg qnew issue803.patch someotherfile 2>&1 | \
+ sed -e 's/someotherfile:.*/someotherfile: No such file or directory/'
+hg st
+hg qseries
+hg qpop -f
+hg qdel issue803.patch
+
+hg revert --no-backup somefile
+rm somefile
+
echo % qnew -m
hg qnew -m 'foo bar' test.patch
--- a/tests/test-mq.out Sun Nov 18 17:25:28 2007 +0100
+++ b/tests/test-mq.out Tue Nov 20 14:41:47 2007 +0100
@@ -83,6 +83,14 @@
series:
A
B
+% qnew with uncommitted changes
+abort: local changes found, refresh first
+A somefile
+% qnew with uncommitted changes and missing file (issue 803)
+someotherfile: No such file or directory
+A somefile
+issue803.patch
+Patch queue now empty
% qnew -m
foo bar
% qrefresh