comparison mercurial/cmdutil.py @ 24357:2da601ab3125

record: refactor the filtering code
author Laurent Charignon <lcharignon@fb.com>
date Mon, 16 Mar 2015 15:35:50 -0700
parents a38f384f2a57
children 8d9e9063b040
comparison
equal deleted inserted replaced
24356:a38f384f2a57 24357:2da601ab3125
32 def wrap(*args, **kwargs): 32 def wrap(*args, **kwargs):
33 return wrapwrite(oldwrite, *args, **kwargs) 33 return wrapwrite(oldwrite, *args, **kwargs)
34 setattr(ui, 'write', wrap) 34 setattr(ui, 'write', wrap)
35 return oldwrite 35 return oldwrite
36 36
37 def recordfilter(ui, originalhunks): 37 def filterchunks(ui, originalhunks, usecurses, testfile):
38 usecurses = ui.configbool('experimental', 'crecord', False)
39 if usecurses: 38 if usecurses:
40 testfile = ui.config('experimental', 'crecordtest', None)
41 if testfile: 39 if testfile:
42 recordfn = crecordmod.testdecorator(testfile, 40 recordfn = crecordmod.testdecorator(testfile,
43 crecordmod.testchunkselector) 41 crecordmod.testchunkselector)
44 else: 42 else:
45 recordfn = crecordmod.chunkselector 43 recordfn = crecordmod.chunkselector
46 44
47 return crecordmod.filterpatch(ui, originalhunks, recordfn) 45 return crecordmod.filterpatch(ui, originalhunks, recordfn)
48 46
49 else: 47 else:
50 return patch.filterpatch(ui, originalhunks) 48 return patch.filterpatch(ui, originalhunks)
49
50 def recordfilter(ui, originalhunks):
51 usecurses = ui.configbool('experimental', 'crecord', False)
52 testfile = ui.config('experimental', 'crecordtest', None)
53 newchunks = filterchunks(ui, originalhunks, usecurses, testfile)
54 return newchunks
51 55
52 def dorecord(ui, repo, commitfunc, cmdsuggest, backupall, 56 def dorecord(ui, repo, commitfunc, cmdsuggest, backupall,
53 filterfn, *pats, **opts): 57 filterfn, *pats, **opts):
54 import merge as mergemod 58 import merge as mergemod
55 hunkclasses = (crecordmod.uihunk, patch.recordhunk) 59 hunkclasses = (crecordmod.uihunk, patch.recordhunk)