Mercurial > public > mercurial-scm > hg
comparison mercurial/cmdutil.py @ 32434:69c864149d69
cmdutil: avoid redefining write() function in export if possible
Doing less work inside the loop just feels better to me.
author | Augie Fackler <augie@google.com> |
---|---|
date | Mon, 22 May 2017 15:05:18 -0400 |
parents | 7feaf5550a9e |
children | 9f56d462634c |
comparison
equal
deleted
inserted
replaced
32433:7feaf5550a9e | 32434:69c864149d69 |
---|---|
1203 | 1203 |
1204 total = len(revs) | 1204 total = len(revs) |
1205 revwidth = max(len(str(rev)) for rev in revs) | 1205 revwidth = max(len(str(rev)) for rev in revs) |
1206 filemode = {} | 1206 filemode = {} |
1207 | 1207 |
1208 write = None | |
1209 dest = '<unnamed>' | |
1210 if fp: | |
1211 dest = getattr(fp, 'name', dest) | |
1212 def write(s, **kw): | |
1213 fp.write(s) | |
1214 elif not fntemplate: | |
1215 write = repo.ui.write | |
1216 | |
1208 for seqno, rev in enumerate(revs, 1): | 1217 for seqno, rev in enumerate(revs, 1): |
1209 ctx = repo[rev] | 1218 ctx = repo[rev] |
1210 fo = None | 1219 fo = None |
1211 dest = '<unnamed>' | 1220 if not fp and fntemplate: |
1212 if not fp and len(fntemplate) > 0: | |
1213 desc_lines = ctx.description().rstrip().split('\n') | 1221 desc_lines = ctx.description().rstrip().split('\n') |
1214 desc = desc_lines[0] #Commit always has a first line. | 1222 desc = desc_lines[0] #Commit always has a first line. |
1215 fo = makefileobj(repo, fntemplate, ctx.node(), desc=desc, | 1223 fo = makefileobj(repo, fntemplate, ctx.node(), desc=desc, |
1216 total=total, seqno=seqno, revwidth=revwidth, | 1224 total=total, seqno=seqno, revwidth=revwidth, |
1217 mode='wb', modemap=filemode) | 1225 mode='wb', modemap=filemode) |
1218 dest = fo.name | 1226 dest = fo.name |
1219 def write(s, **kw): | 1227 def write(s, **kw): |
1220 fo.write(s) | 1228 fo.write(s) |
1221 elif fp: | |
1222 dest = getattr(fp, 'name', dest) | |
1223 def write(s, **kw): | |
1224 fp.write(s) | |
1225 else: | |
1226 write = repo.ui.write | |
1227 if not dest.startswith('<'): | 1229 if not dest.startswith('<'): |
1228 repo.ui.note("%s\n" % dest) | 1230 repo.ui.note("%s\n" % dest) |
1229 _exportsingle( | 1231 _exportsingle( |
1230 repo, ctx, match, switch_parent, rev, seqno, write, opts) | 1232 repo, ctx, match, switch_parent, rev, seqno, write, opts) |
1231 if fo is not None: | 1233 if fo is not None: |