Mercurial > hg
changeset 22926:2d0b60b5abc0
summary: make status code more readable
In commands.summary(), we currently zip a list of labels with a list
of statuses. This means the order of the status list has to match the
list of the labels, which in turn means the status elements have to be
inserted into specific places in the list. Let's instead group the
labels and status data we want to display in a single list of pairs.
author | Martin von Zweigbergk <martinvonz@gmail.com> |
---|---|
date | Fri, 03 Oct 2014 09:29:48 -0700 |
parents | 68df36ce3d8a |
children | 7d754b7acd55 |
files | mercurial/commands.py |
diffstat | 1 files changed, 19 insertions(+), 21 deletions(-) [+] |
line wrap: on
line diff
--- a/mercurial/commands.py Sat Oct 04 20:53:05 2014 -0700 +++ b/mercurial/commands.py Fri Oct 03 09:29:48 2014 -0700 @@ -5787,38 +5787,35 @@ ui.write(' ' + m, label='log.bookmark') ui.write('\n', label='log.bookmark') - st = list(repo.status(unknown=True))[:5] + status = repo.status(unknown=True) c = repo.dirstate.copies() copied, renamed = [], [] for d, s in c.iteritems(): - if s in st[2]: - st[2].remove(s) + if s in status.removed: + status.removed.remove(s) renamed.append(d) else: copied.append(d) - if d in st[1]: - st[1].remove(d) - st.insert(3, renamed) - st.insert(4, copied) + if d in status.added: + status.added.remove(d) ms = mergemod.mergestate(repo) - st.append([f for f in ms if ms[f] == 'u']) + unresolved = [f for f in ms if ms[f] == 'u'] subs = [s for s in ctx.substate if ctx.sub(s).dirty()] - st.append(subs) - - labels = [ui.label(_('%d modified'), 'status.modified'), - ui.label(_('%d added'), 'status.added'), - ui.label(_('%d removed'), 'status.removed'), - ui.label(_('%d renamed'), 'status.copied'), - ui.label(_('%d copied'), 'status.copied'), - ui.label(_('%d deleted'), 'status.deleted'), - ui.label(_('%d unknown'), 'status.unknown'), - ui.label(_('%d unresolved'), 'resolve.unresolved'), - ui.label(_('%d subrepos'), 'status.modified')] + + labels = [(ui.label(_('%d modified'), 'status.modified'), status.modified), + (ui.label(_('%d added'), 'status.added'), status.added), + (ui.label(_('%d removed'), 'status.removed'), status.removed), + (ui.label(_('%d renamed'), 'status.copied'), renamed), + (ui.label(_('%d copied'), 'status.copied'), copied), + (ui.label(_('%d deleted'), 'status.deleted'), status.deleted), + (ui.label(_('%d unknown'), 'status.unknown'), status.unknown), + (ui.label(_('%d unresolved'), 'resolve.unresolved'), unresolved), + (ui.label(_('%d subrepos'), 'status.modified'), subs)] t = [] - for s, l in zip(st, labels): + for l, s in labels: if s: t.append(l % len(s)) @@ -5834,7 +5831,8 @@ elif (parents[0].closesbranch() and pnode in repo.branchheads(branch, closed=True)): t += _(' (head closed)') - elif not (st[0] or st[1] or st[2] or st[3] or st[4] or st[8]): + elif not (status.modified or status.added or status.removed or renamed or + copied or subs): t += _(' (clean)') cleanworkdir = True elif pnode not in bheads: