[PATCH 3 of 4] context.status: avoid de- and reconstructing status tuple

Martin von Zweigbergk martinvonz at google.com
Thu Nov 13 00:29:55 CST 2014


# HG changeset patch
# User Martin von Zweigbergk <martinvonz at google.com>
# Date 1415858851 28800
#      Wed Nov 12 22:07:31 2014 -0800
# Node ID e976b49eb0342c83226855a4facb9c8e814e4551
# Parent  e9b22ca29fe08c8d64db9af54d41408c03110943
context.status: avoid de- and reconstructing status tuple

We can just modify the status tuple we got from dirstate.status()
instead of deconstructing it and constructing a new instance, thereby
simplifying the code a little.

diff --git a/mercurial/context.py b/mercurial/context.py
--- a/mercurial/context.py
+++ b/mercurial/context.py
@@ -1408,19 +1408,17 @@
             subrepos = sorted(self.substate)
         cmp, s = self._repo.dirstate.status(match, subrepos, listignored,
                                             listclean, listunknown)
-        modified, added, removed, deleted, unknown, ignored, clean = s
 
         # check for any possibly clean files
         if cmp:
             modified2, fixup = self._checklookup(cmp)
-            modified += modified2
+            s.modified.extend(modified2)
 
             # update dirstate for files that are actually clean
             if fixup and listclean:
-                clean += fixup
+                s.clean.extend(fixup)
 
-        return scmutil.status(modified, added, removed, deleted, unknown,
-                              ignored, clean)
+        return s
 
     def _buildstatus(self, other, s, match, listignored, listclean,
                      listunknown):


More information about the Mercurial-devel mailing list