Mercurial > public > mercurial-scm > hg-stable
diff mercurial/cmdutil.py @ 24341:616c01b69898
record: change interface of the filtering function
This way filtering functions accept chunks and return chunks
author | Laurent Charignon <lcharignon@fb.com> |
---|---|
date | Thu, 12 Mar 2015 17:51:37 -0700 |
parents | e02a0a419418 |
children | 69538481ea9f |
line wrap: on
line diff
--- a/mercurial/cmdutil.py Thu Mar 12 23:15:06 2015 -0400 +++ b/mercurial/cmdutil.py Thu Mar 12 17:51:37 2015 -0700 @@ -20,8 +20,8 @@ def parsealiases(cmd): return cmd.lstrip("^").split("|") -def recordfilter(ui, fp): - return patch.filterpatch(ui, patch.parsepatch(fp)) +def recordfilter(ui, originalhunks): + return patch.filterpatch(ui, originalhunks) def dorecord(ui, repo, commitfunc, cmdsuggest, backupall, filterfn, *pats, **opts): @@ -59,19 +59,15 @@ diffopts = patch.difffeatureopts(ui, opts=opts, whitespace=True) diffopts.nodates = True diffopts.git = True - originalchunks = patch.diff(repo, changes=status, opts=diffopts) - fp = cStringIO.StringIO() - fp.write(''.join(originalchunks)) - fp.seek(0) + originaldiff = patch.diff(repo, changes=status, opts=diffopts) + originalchunks = patch.parsepatch(originaldiff) # 1. filter patch, so we have intending-to apply subset of it try: - chunks = filterfn(ui, fp) + chunks = filterfn(ui, originalchunks) except patch.PatchError, err: raise util.Abort(_('error parsing patch: %s') % err) - del fp - contenders = set() for h in chunks: try: