branchmap: decode a label only once
This moves decoding of a label out of for loop. Minor speed up expected in cases
when one branch has multiple heads. For example: someone using bookmarks as
branches and hence ending up with multiple heads on default branch.
Differential Revision: https://phab.mercurial-scm.org/D5932
--- a/mercurial/branchmap.py Mon Feb 11 15:34:35 2019 +0300
+++ b/mercurial/branchmap.py Mon Feb 11 15:41:08 2019 +0300
@@ -280,14 +280,14 @@
f.write(" ".join(cachekey) + '\n')
nodecount = 0
for label, nodes in sorted(self.iteritems()):
+ label = encoding.fromlocal(label)
for node in nodes:
nodecount += 1
if node in self._closednodes:
state = 'c'
else:
state = 'o'
- f.write("%s %s %s\n" % (hex(node), state,
- encoding.fromlocal(label)))
+ f.write("%s %s %s\n" % (hex(node), state, label))
f.close()
repo.ui.log('branchcache',
'wrote %s branch cache with %d labels and %d nodes\n',