Mercurial > hg
diff hgext/mq.py @ 7308:b6f5490effbf
patch: turn patch.diff() into a generator
This should even be a little faster than passing in an fp argument.
author | Dirkjan Ochtman <dirkjan@ochtman.nl> |
---|---|
date | Mon, 03 Nov 2008 16:48:23 +0100 |
parents | 56380212d630 |
children | 7e9a15fa6c8f 2cd1308cb588 |
line wrap: on
line diff
--- a/hgext/mq.py Mon Nov 03 16:31:47 2008 +0100 +++ b/hgext/mq.py Mon Nov 03 16:48:23 2008 +0100 @@ -321,7 +321,10 @@ def printdiff(self, repo, node1, node2=None, files=None, fp=None, changes=None, opts={}): m = cmdutil.match(repo, files, opts) - patch.diff(repo, node1, node2, m, fp, changes, self.diffopts()) + chunks = patch.diff(repo, node1, node2, m, changes, self.diffopts()) + write = fp is None and repo.ui.write or fp.write + for chunk in chunks: + write(chunk) def mergeone(self, repo, mergeq, head, patch, rev): # first try just applying the patch @@ -697,8 +700,10 @@ diffopts = self.diffopts() if opts.get('git'): diffopts.git = True parent = self.qparents(repo, n) - patch.diff(repo, node1=parent, node2=n, fp=p, - match=match, opts=diffopts) + chunks = patch.diff(repo, node1=parent, node2=n, + match=match, opts=diffopts) + for chunk in chunks: + p.write(chunk) p.close() wlock = None r = self.qrepo() @@ -1139,8 +1144,10 @@ a = util.unique(aa) c = [filter(matchfn, l) for l in (m, a, r)] match = cmdutil.matchfiles(repo, util.unique(c[0] + c[1] + c[2])) - patch.diff(repo, patchparent, match=match, - fp=patchf, changes=c, opts=self.diffopts()) + chunks = patch.diff(repo, patchparent, match=match, + changes=c, opts=self.diffopts()) + for chunk in chunks: + patchf.write(chunk) patchf.close() repo.dirstate.setparents(*cparents)