# HG changeset patch # User Mark Thomas # Date 2017-10-02 21:05:30 # Node ID eddeedbde866ab49f5344e5238865dce46c0ed47 # Parent f71c712ebdec32f115ab09dbe6339fd38e69c723 commands: tidy up merge state decoding in resolve Make the mapping from merge state to label and display key explicit, and move construction of the dict out of the loop. Differential Revision: https://phab.mercurial-scm.org/D861 diff --git a/mercurial/commands.py b/mercurial/commands.py --- a/mercurial/commands.py +++ b/mercurial/commands.py @@ -4272,23 +4272,26 @@ def resolve(ui, repo, *pats, **opts): fm = ui.formatter('resolve', opts) ms = mergemod.mergestate.read(repo) m = scmutil.match(repo[None], pats, opts) + + # Labels and keys based on merge state. Unresolved path conflicts show + # as 'P'. Resolved path conflicts show as 'R', the same as normal + # resolved conflicts. + mergestateinfo = { + 'u': ('resolve.unresolved', 'U'), + 'r': ('resolve.resolved', 'R'), + 'pu': ('resolve.unresolved', 'P'), + 'pr': ('resolve.resolved', 'R'), + 'd': ('resolve.driverresolved', 'D'), + } + for f in ms: if not m(f): continue - # Set label based on merge state. - l = 'resolve.' + {'u': 'unresolved', 'r': 'resolved', - 'pu': 'unresolved', 'pr': 'resolved', - 'd': 'driverresolved'}[ms[f]] - - # Set key based on merge state. Unresolved path conflicts show - # as 'P'. Resolved path conflicts show as 'R', the same as normal - # resolved conflicts. - key = {'pu': 'P', 'pr': 'R'}.get(ms[f], ms[f].upper()) - + label, key = mergestateinfo[ms[f]] fm.startitem() - fm.condwrite(not nostatus, 'status', '%s ', key, label=l) - fm.write('path', '%s\n', f, label=l) + fm.condwrite(not nostatus, 'status', '%s ', key, label=label) + fm.write('path', '%s\n', f, label=label) fm.end() return 0