[Request] [+ ] D8565: mergestate: optimize unresolvedcount() a little bit
durin42 (Augie Fackler)
phabricator at mercurial-scm.org
Mon May 18 22:10:52 UTC 2020
durin42 created this revision.
Herald added a reviewer: hg-reviewers.
Herald added a subscriber: mercurial-patches.
REVISION SUMMARY
It struck me as wasteful to make this extra list copy of a generator. I was
hoping to manage to return a bool instead of an int (and thus avoid traversing
the dictionary past the first unresolved entry) but at least one caller cares
about the count and this is the easy way forward while still making me
marginally happier.
REPOSITORY
rHG Mercurial
BRANCH
default
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
@@ -79,6 +79,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
@@ -569,10 +575,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):
@@ -713,7 +716,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, mercurial-devel
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mercurial-scm.org/pipermail/mercurial-patches/attachments/20200518/d1763b2e/attachment-0001.html>
More information about the Mercurial-patches
mailing list