Mercurial > hg
changeset 3027:a4374f7331e4
Call patch.diff directly instead of printdiff - this also saves an
extra walk of the working directory.
author | Brendan Cully <brendan@kublai.com> |
---|---|
date | Tue, 29 Aug 2006 17:08:55 -0700 |
parents | d838bfac668d |
children | ea734528ce04 |
files | hgext/mq.py tests/test-mq tests/test-mq.out |
diffstat | 3 files changed, 53 insertions(+), 7 deletions(-) [+] |
line wrap: on
line diff
--- a/hgext/mq.py Tue Aug 29 17:08:42 2006 -0700 +++ b/hgext/mq.py Tue Aug 29 17:08:55 2006 -0700 @@ -919,13 +919,13 @@ return 1 wlock = repo.wlock() self.check_toppatch(repo) - (top, patch) = (self.applied[-1].rev, self.applied[-1].name) + (top, patchfn) = (self.applied[-1].rev, self.applied[-1].name) top = revlog.bin(top) cparents = repo.changelog.parents(top) patchparent = self.qparents(repo, top) - message, comments, user, date, patchfound = self.readheaders(patch) + message, comments, user, date, patchfound = self.readheaders(patchfn) - patchf = self.opener(patch, "w") + patchf = self.opener(patchfn, "w") msg = opts.get('msg', '').rstrip() if msg: if comments: @@ -995,8 +995,9 @@ r = list(util.unique(dd)) a = list(util.unique(aa)) filelist = filter(matchfn, util.unique(m + r + a)) - self.printdiff(repo, patchparent, files=filelist, - changes=(m, a, r, [], u), fp=patchf) + patch.diff(repo, patchparent, files=filelist, match=matchfn, + fp=patchf, changes=(m, a, r, [], u), + opts=self.diffopts()) patchf.close() changes = repo.changelog.read(tip) @@ -1019,7 +1020,7 @@ if not msg: if not message: - message = "patch queue: %s\n" % patch + message = "patch queue: %s\n" % patchfn else: message = "\n".join(message) else: @@ -1027,7 +1028,7 @@ self.strip(repo, top, update=False, backup='strip', wlock=wlock) n = repo.commit(filelist, message, changes[1], force=1, wlock=wlock) - self.applied[-1] = statusentry(revlog.hex(n), patch) + self.applied[-1] = statusentry(revlog.hex(n), patchfn) self.applied_dirty = 1 else: self.printdiff(repo, patchparent, fp=patchf)
--- a/tests/test-mq Tue Aug 29 17:08:42 2006 -0700 +++ b/tests/test-mq Tue Aug 29 17:08:55 2006 -0700 @@ -126,6 +126,27 @@ hg strip tip 2>&1 | sed 's/\(saving bundle to \).*/\1/' hg unbundle .hg/strip-backup/* +echo '% cd b; hg qrefresh' +hg init refresh +cd refresh +echo a > a +hg ci -Ama -d'0 0' +hg qnew -mfoo foo +echo a >> a +hg qrefresh +mkdir b +cd b +echo f > f +hg add f +hg qrefresh +sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ + -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" ../.hg/patches/foo +echo % hg qrefresh . +hg qrefresh . +sed -e "s/\(+++ [a-zA-Z0-9_/.-]*\).*/\1/" \ + -e "s/\(--- [a-zA-Z0-9_/.-]*\).*/\1/" ../.hg/patches/foo +hg status + cat >>$HGRCPATH <<EOF [diff] git = True
--- a/tests/test-mq.out Tue Aug 29 17:08:42 2006 -0700 +++ b/tests/test-mq.out Tue Aug 29 17:08:55 2006 -0700 @@ -127,6 +127,30 @@ adding file changes added 1 changesets with 1 changes to 1 files (run 'hg update' to get a working copy) +% cd b; hg qrefresh +adding a +foo + +diff -r cb9a9f314b8b a +--- a/a ++++ b/a +@@ -1,1 +1,2 @@ a + a ++a +diff -r cb9a9f314b8b b/f +--- /dev/null ++++ b/b/f +@@ -0,0 +1,1 @@ ++f +% hg qrefresh . +foo + +diff -r cb9a9f314b8b b/f +--- /dev/null ++++ b/b/f +@@ -0,0 +1,1 @@ ++f +M a new file diff --git a/new b/new