[Updated] [+ ] D8565: mergestate: optimize unresolvedcount() a little bit

durin42 (Augie Fackler) phabricator at mercurial-scm.org
Thu May 28 21:10:04 UTC 2020


durin42 updated this revision to Diff 21517.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D8565?vs=21510&id=21517

BRANCH
  default

CHANGES SINCE LAST ACTION
  https://phab.mercurial-scm.org/D8565/new/

REVISION DETAIL
  https://phab.mercurial-scm.org/D8565

AFFECTED FILES
  mercurial/mergestate.py

CHANGE DETAILS

diff --git a/mercurial/mergestate.py b/mercurial/mergestate.py
--- a/mercurial/mergestate.py
+++ b/mercurial/mergestate.py
@@ -86,6 +86,12 @@
 ACTION_GET_OTHER_AND_STORE = b'gs'
 
 
+_MERGE_UNRESOLVED_STATES = {
+    MERGE_RECORD_UNRESOLVED,
+    MERGE_RECORD_UNRESOLVED_PATH,
+}
+
+
 class mergestate(object):
     '''track 3-way merge state of individual files
 
@@ -576,10 +582,7 @@
         """Obtain the paths of unresolved files."""
 
         for f, entry in pycompat.iteritems(self._state):
-            if entry[0] in (
-                MERGE_RECORD_UNRESOLVED,
-                MERGE_RECORD_UNRESOLVED_PATH,
-            ):
+            if entry[0] in _MERGE_UNRESOLVED_STATES:
                 yield f
 
     def driverresolved(self):
@@ -714,7 +717,13 @@
 
     def unresolvedcount(self):
         """get unresolved count for this merge (persistent)"""
-        return len(list(self.unresolved()))
+        return len(
+            [
+                None
+                for entry in pycompat.itervalues(self._state)
+                if entry[0] in _MERGE_UNRESOLVED_STATES
+            ]
+        )
 
     def actions(self):
         """return lists of actions to perform on the dirstate"""



To: durin42, #hg-reviewers
Cc: mercurial-patches
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://lists.mercurial-scm.org/pipermail/mercurial-patches/attachments/20200528/9d988e83/attachment-0002.html>


More information about the Mercurial-patches mailing list