comparison mercurial/cmdutil.py @ 36242:33ed8b511185

cmdutil: pass ctx to makefilename() in place of repo/node pair (API)
author Yuya Nishihara <yuya@tcha.org>
date Thu, 02 Apr 2015 23:32:28 +0900
parents 01280638bdb1
children 976e1cfb2f64
comparison
equal deleted inserted replaced
36241:01280638bdb1 36242:33ed8b511185
889 elif editform: 889 elif editform:
890 return lambda r, c, s: commiteditor(r, c, s, editform=editform) 890 return lambda r, c, s: commiteditor(r, c, s, editform=editform)
891 else: 891 else:
892 return commiteditor 892 return commiteditor
893 893
894 def makefilename(repo, pat, node, desc=None, 894 def makefilename(ctx, pat, desc=None,
895 total=None, seqno=None, revwidth=None, pathname=None): 895 total=None, seqno=None, revwidth=None, pathname=None):
896 repo = ctx.repo()
897 node = ctx.node()
896 expander = { 898 expander = {
897 'H': lambda: hex(node), 899 'H': lambda: hex(node),
898 'R': lambda: '%d' % repo.changelog.rev(node), 900 'R': lambda: '%d' % repo.changelog.rev(node),
899 'h': lambda: short(node), 901 'h': lambda: short(node),
900 'm': lambda: re.sub('[^\w]', '_', desc or ''), 902 'm': lambda: re.sub('[^\w]', '_', desc or ''),
964 if writable: 966 if writable:
965 fp = repo.ui.fout 967 fp = repo.ui.fout
966 else: 968 else:
967 fp = repo.ui.fin 969 fp = repo.ui.fin
968 return _unclosablefile(fp) 970 return _unclosablefile(fp)
969 fn = makefilename(repo, pat, node, desc, total, seqno, revwidth, pathname) 971 ctx = repo[node]
972 fn = makefilename(ctx, pat, desc, total, seqno, revwidth, pathname)
970 if modemap is not None: 973 if modemap is not None:
971 mode = modemap.get(fn, mode) 974 mode = modemap.get(fn, mode)
972 if mode == 'wb': 975 if mode == 'wb':
973 modemap[fn] = 'ab' 976 modemap[fn] = 'ab'
974 return open(fn, mode) 977 return open(fn, mode)
2161 opts = pycompat.byteskwargs(opts) 2164 opts = pycompat.byteskwargs(opts)
2162 2165
2163 def write(path): 2166 def write(path):
2164 filename = None 2167 filename = None
2165 if fntemplate: 2168 if fntemplate:
2166 filename = makefilename(repo, fntemplate, ctx.node(), 2169 filename = makefilename(ctx, fntemplate,
2167 pathname=os.path.join(prefix, path)) 2170 pathname=os.path.join(prefix, path))
2168 # attempt to create the directory if it does not already exist 2171 # attempt to create the directory if it does not already exist
2169 try: 2172 try:
2170 os.makedirs(os.path.dirname(filename)) 2173 os.makedirs(os.path.dirname(filename))
2171 except OSError: 2174 except OSError: