From patchwork Mon May 22 19:09:23 2017 Content-Type: text/plain; charset="utf-8" MIME-Version: 1.0 Content-Transfer-Encoding: 7bit Subject: [5, of, 5] cmdutil: avoid redefining write() function in export if possible From: Augie Fackler X-Patchwork-Id: 20840 Message-Id: <9e2bdfd6fc087016bba8.1495480163@augie-macbookpro2.roam.corp.google.com> To: mercurial-devel@mercurial-scm.org Date: Mon, 22 May 2017 15:09:23 -0400 # HG changeset patch # User Augie Fackler # Date 1495479918 14400 # Mon May 22 15:05:18 2017 -0400 # Node ID 9e2bdfd6fc087016bba880d3e8852bb946cf7460 # Parent 7cd8268c9ad7a36ab3a54d8bddafef0d9dc1a93a cmdutil: avoid redefining write() function in export if possible Doing less work inside the loop just feels better to me. diff --git a/mercurial/cmdutil.py b/mercurial/cmdutil.py --- a/mercurial/cmdutil.py +++ b/mercurial/cmdutil.py @@ -1205,11 +1205,19 @@ def export(repo, revs, fntemplate='hg-%h revwidth = max(len(str(rev)) for rev in revs) filemode = {} + write = None + dest = '' + if fp: + dest = getattr(fp, 'name', dest) + def write(s, **kw): + fp.write(s) + elif not fntemplate: + write = repo.ui.write + for seqno, rev in enumerate(revs, 1): ctx = repo[rev] fo = None - dest = '' - if not fp and len(fntemplate) > 0: + if not fp and fntemplate: desc_lines = ctx.description().rstrip().split('\n') desc = desc_lines[0] #Commit always has a first line. fo = makefileobj(repo, fntemplate, ctx.node(), desc=desc, @@ -1218,12 +1226,6 @@ def export(repo, revs, fntemplate='hg-%h dest = fo.name def write(s, **kw): fo.write(s) - elif fp: - dest = getattr(fp, 'name', dest) - def write(s, **kw): - fp.write(s) - else: - write = repo.ui.write if not dest.startswith('<'): repo.ui.note("%s\n" % dest) _exportsingle(