Mercurial > public > mercurial-scm > hg-stable
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: |