diff hgext/mq.py @ 5534:61c230f81068

mq: avoid qnew committing everything on invalid paths (issue 803) If paths are supplied but resolve to nothing, localrepo.commit() is called with an empty set and commits the whole dirstate. Avoid this by passing the match function to commit.
author Patrick Mezard <pmezard@gmail.com>
date Tue, 20 Nov 2007 14:31:58 +0100
parents 0b3f910dfd17
children 1f044b04fa0a b4858eb4b58f
line wrap: on
line diff
--- a/hgext/mq.py	Fri Nov 09 20:21:35 2007 -0200
+++ b/hgext/mq.py	Tue Nov 20 14:31:58 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]