fix qrefresh'ing an empty patch
authorAlexis S. L. Carvalho <alexis@cecm.usp.br>
Sat, 10 Mar 2007 22:03:23 -0300
changeset 4173 7307d2e98b32
parent 4172 b36bd7534c08
child 4174 a2335e832e16
fix qrefresh'ing an empty patch This is not superefficient (the commit will have to walk the whole tree), but it works.
hgext/mq.py
tests/test-mq
tests/test-mq.out
--- a/hgext/mq.py	Sat Mar 10 22:03:22 2007 -0300
+++ b/hgext/mq.py	Sat Mar 10 22:03:23 2007 -0300
@@ -1015,10 +1015,10 @@
             m = util.unique(mm)
             r = util.unique(dd)
             a = util.unique(aa)
-            filelist = filter(matchfn, util.unique(m + r + a))
+            c = [filter(matchfn, l) for l in (m, a, r, [], u)]
+            filelist = util.unique(c[0] + c[1] + c[2])
             patch.diff(repo, patchparent, files=filelist, match=matchfn,
-                       fp=patchf, changes=(m, a, r, [], u),
-                       opts=self.diffopts())
+                       fp=patchf, changes=c, opts=self.diffopts())
             patchf.close()
 
             repo.dirstate.setparents(*cparents)
@@ -1066,7 +1066,8 @@
                 message = msg
 
             self.strip(repo, top, update=False, backup='strip', wlock=wlock)
-            n = repo.commit(filelist, message, changes[1], force=1, wlock=wlock)
+            n = repo.commit(filelist, message, changes[1], match=matchfn,
+                            force=1, wlock=wlock)
             self.applied[-1] = statusentry(revlog.hex(n), patchfn)
             self.applied_dirty = 1
         else:
--- a/tests/test-mq	Sat Mar 10 22:03:22 2007 -0300
+++ b/tests/test-mq	Sat Mar 10 22:03:23 2007 -0300
@@ -55,6 +55,18 @@
     -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \
     -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" .hg/patches/test.patch
 
+echo % empty qrefresh
+
+hg qrefresh -X a
+echo 'revision:'
+hg diff -r -2 -r -1
+echo 'patch:'
+cat .hg/patches/test.patch
+echo 'working dir diff:'
+hg diff --nodates -q
+# restore things
+hg qrefresh
+
 echo % qpop
 
 hg qpop
--- a/tests/test-mq.out	Sat Mar 10 22:03:22 2007 -0300
+++ b/tests/test-mq.out	Sat Mar 10 22:03:23 2007 -0300
@@ -71,6 +71,17 @@
 @@ -1,1 +1,2 @@ a
  a
 +a
+% empty qrefresh
+revision:
+patch:
+foo bar
+
+working dir diff:
+--- a/a
++++ b/a
+@@ -1,1 +1,2 @@ a
+ a
++a
 % qpop
 Patch queue now empty
 % qpush