# HG changeset patch # User Alexis S. L. Carvalho # Date 1173575003 10800 # Node ID 7307d2e98b322ed80a07aad758225a4ced2a6305 # Parent b36bd7534c08eba29307d13e57eceb55c7ea7afd fix qrefresh'ing an empty patch This is not superefficient (the commit will have to walk the whole tree), but it works. diff -r b36bd7534c08 -r 7307d2e98b32 hgext/mq.py --- 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: diff -r b36bd7534c08 -r 7307d2e98b32 tests/test-mq --- 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 diff -r b36bd7534c08 -r 7307d2e98b32 tests/test-mq.out --- 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