record: change interface of dorecord to accept new filters
authorLaurent Charignon <lcharignon@fb.com>
Wed, 11 Mar 2015 16:39:38 -0700
changeset 24309 fefcafda10b8
parent 24308 1725843a7644
child 24310 6409fb6c934d
record: change interface of dorecord to accept new filters This makes it easier to add different filtering logic (record /crecord ...)
hgext/record.py
mercurial/cmdutil.py
mercurial/commands.py
--- a/hgext/record.py	Wed Mar 11 16:18:47 2015 -0700
+++ b/hgext/record.py	Wed Mar 11 16:39:38 2015 -0700
@@ -66,7 +66,8 @@
         mq.refresh(ui, repo, **opts)
 
     # backup all changed files
-    cmdutil.dorecord(ui, repo, committomq, 'qrefresh', True, *pats, **opts)
+    cmdutil.dorecord(ui, repo, committomq, 'qrefresh', True,
+                    cmdutil.recordfilter, *pats, **opts)
 
 # This command registration is replaced during uisetup().
 @command('qrecord',
@@ -91,7 +92,8 @@
         opts['checkname'] = False
         mq.new(ui, repo, patch, *pats, **opts)
 
-    cmdutil.dorecord(ui, repo, committomq, 'qnew', False, *pats, **opts)
+    cmdutil.dorecord(ui, repo, committomq, 'qnew', False,
+                    cmdutil.recordfilter, *pats, **opts)
 
 def qnew(origfn, ui, repo, patch, *args, **opts):
     if opts['interactive']:
--- a/mercurial/cmdutil.py	Wed Mar 11 16:18:47 2015 -0700
+++ b/mercurial/cmdutil.py	Wed Mar 11 16:39:38 2015 -0700
@@ -19,7 +19,11 @@
 def parsealiases(cmd):
     return cmd.lstrip("^").split("|")
 
-def dorecord(ui, repo, commitfunc, cmdsuggest, backupall, *pats, **opts):
+def recordfilter(ui, fp):
+    return patch.filterpatch(ui, patch.parsepatch(fp))
+
+def dorecord(ui, repo, commitfunc, cmdsuggest, backupall,
+            filterfn, *pats, **opts):
     import merge as mergemod
     if not ui.interactive():
         raise util.Abort(_('running non-interactively, use %s instead') %
@@ -61,7 +65,7 @@
 
         # 1. filter patch, so we have intending-to apply subset of it
         try:
-            chunks = patch.filterpatch(ui, patch.parsepatch(fp))
+            chunks = filterfn(ui, fp)
         except patch.PatchError, err:
             raise util.Abort(_('error parsing patch: %s') % err)
 
--- a/mercurial/commands.py	Wed Mar 11 16:18:47 2015 -0700
+++ b/mercurial/commands.py	Wed Mar 11 16:39:38 2015 -0700
@@ -1431,7 +1431,8 @@
     """
     if opts.get('interactive'):
         opts.pop('interactive')
-        cmdutil.dorecord(ui, repo, commit, 'commit', False, *pats, **opts)
+        cmdutil.dorecord(ui, repo, commit, 'commit', False,
+                        cmdutil.recordfilter, *pats, **opts)
         return
 
     if opts.get('subrepos'):