[PATCH 1 of 5] revsetlang: avoid string concatenation in formatspec()
Yuya Nishihara
yuya at tcha.org
Sun Jan 7 06:31:51 UTC 2018
# HG changeset patch
# User Yuya Nishihara <yuya at tcha.org>
# Date 1491033011 -32400
# Sat Apr 01 16:50:11 2017 +0900
# Node ID 48cdc456784aa0e7a39f89f63f1d5142b20637d7
# Parent 9aa28a9a49871922fd48f1ff6811573a191d47f9
revsetlang: avoid string concatenation in formatspec()
diff --git a/mercurial/revsetlang.py b/mercurial/revsetlang.py
--- a/mercurial/revsetlang.py
+++ b/mercurial/revsetlang.py
@@ -620,7 +620,7 @@ def formatspec(expr, *args):
return '(%s or %s)' % (listexp(s[:m], t), listexp(s[m:], t))
expr = pycompat.bytestr(expr)
- ret = ''
+ ret = []
pos = 0
arg = 0
while pos < len(expr):
@@ -629,24 +629,24 @@ def formatspec(expr, *args):
pos += 1
d = expr[pos]
if d == '%':
- ret += d
+ ret.append(d)
elif d in 'dsnbr':
- ret += argtype(d, args[arg])
+ ret.append(argtype(d, args[arg]))
arg += 1
elif d == 'l':
# a list of some type
pos += 1
d = expr[pos]
- ret += listexp(list(args[arg]), d)
+ ret.append(listexp(list(args[arg]), d))
arg += 1
else:
raise error.Abort(_('unexpected revspec format character %s')
% d)
else:
- ret += c
+ ret.append(c)
pos += 1
- return ret
+ return ''.join(ret)
def prettyformat(tree):
return parser.prettyformat(tree, ('string', 'symbol'))
More information about the Mercurial-devel
mailing list