[PATCH 5 of 5] cmdutil: avoid redefining write() function in export if possible

Augie Fackler raf at durin42.com
Mon May 22 15:09:23 EDT 2017


# HG changeset patch
# User Augie Fackler <augie at google.com>
# 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 = '<unnamed>'
+    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 = '<unnamed>'
-        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(


More information about the Mercurial-devel mailing list