[PATCH 2 of 2] annotate: handle empty files earlier
Denis Laxalde
denis.laxalde at logilab.fr
Wed Jul 13 05:08:16 EDT 2016
# HG changeset patch
# User Denis Laxalde <denis.laxalde at logilab.fr>
# Date 1468244734 -7200
# Mon Jul 11 15:45:34 2016 +0200
# Node ID 97b9d021baad5537eab37232bdafe3a3e96404a2
# Parent 969b3f54ffa50a3fc3348bb645700e647893a0e8
annotate: handle empty files earlier
Rather than looping on funcmap and then checking for non-zero `l`
continue if the result of fctx.annotate is empty.
diff --git a/mercurial/commands.py b/mercurial/commands.py
--- a/mercurial/commands.py
+++ b/mercurial/commands.py
@@ -469,26 +469,27 @@ def annotate(ui, repo, *pats, **opts):
lines = fctx.annotate(follow=follow, linenumber=linenumber,
diffopts=diffopts)
+ if not lines:
+ continue
formats = []
pieces = []
for f, sep in funcmap:
l = [f(n) for n, dummy in lines]
- if l:
- if fm:
- formats.append(['%s' for x in l])
- else:
- sizes = [encoding.colwidth(x) for x in l]
- ml = max(sizes)
- formats.append([sep + ' ' * (ml - w) + '%s' for w in sizes])
- pieces.append(l)
+ if fm:
+ formats.append(['%s' for x in l])
+ else:
+ sizes = [encoding.colwidth(x) for x in l]
+ ml = max(sizes)
+ formats.append([sep + ' ' * (ml - w) + '%s' for w in sizes])
+ pieces.append(l)
for f, p, l in zip(zip(*formats), zip(*pieces), lines):
fm.startitem()
fm.write(fields, "".join(f), *p)
fm.write('line', ": %s", l[1])
- if lines and not lines[-1][1].endswith('\n'):
+ if not lines[-1][1].endswith('\n'):
fm.plain('\n')
fm.end()
More information about the Mercurial-devel
mailing list