Patchwork [4,of,4,V2] context.status: pass status tuple into _buildstatus

login
register
mail settings
Submitter Martin von Zweigbergk
Date Nov. 14, 2014, 5:37 a.m.
Message ID <9832487a259970eb6131.1415943468@martinvonz.mtv.corp.google.com>
Download mbox | patch
Permalink /patch/6726/
State Accepted
Commit dd3f857598a0625305b106323544df425efeaf84
Headers show

Comments

Martin von Zweigbergk - Nov. 14, 2014, 5:37 a.m.
# HG changeset patch
# User Martin von Zweigbergk <martinvonz@google.com>
# Date 1415859636 28800
#      Wed Nov 12 22:20:36 2014 -0800
# Node ID 9832487a259970eb61318bbfd8bf70d7a325be72
# Parent  34d3d9e7197dcf37bd8f1d1ef1a8beeb7e44600a
context.status: pass status tuple into _buildstatus

By passing a status tuple (instead of the current list), we can access
the status fields by name and make it a little more readable.

Patch

diff --git a/mercurial/context.py b/mercurial/context.py
--- a/mercurial/context.py
+++ b/mercurial/context.py
@@ -108,7 +108,7 @@ 
         mf2 = self._manifestmatches(match, s)
 
         modified, added, clean = [], [], []
-        deleted, unknown, ignored = s[3], s[4], s[5]
+        deleted, unknown, ignored = s.deleted, s.unknown, s.ignored
         deletedset = set(deleted)
         withflags = mf1.withflags() | mf2.withflags()
         for fn, mf2node in mf2.iteritems():
@@ -301,7 +301,7 @@ 
             ctx1, ctx2 = ctx2, ctx1
 
         match = ctx2._matchstatus(ctx1, match)
-        r = [[], [], [], [], [], [], []]
+        r = scmutil.status([], [], [], [], [], [], [])
         r = ctx2._buildstatus(ctx1, r, match, listignored, listclean,
                               listunknown)
 
@@ -1390,11 +1390,10 @@ 
         need to build a manifest and return what matches.
         """
         mf = self._repo['.']._manifestmatches(match, s)
-        modified, added, removed = s[0:3]
-        for f in modified + added:
+        for f in s.modified + s.added:
             mf[f] = None
             mf.setflag(f, self.flags(f))
-        for f in removed:
+        for f in s.removed:
             if f in mf:
                 del mf[f]
         return mf