[PATCH 1 of 2 remotenames-ext v2] lazyremotenamedict: make iteritems able to not check whether nodes exist
Kostia Balytskyi
ikostia at fb.com
Mon Feb 6 10:48:20 UTC 2017
# HG changeset patch
# User Kostia Balytskyi <ikostia at fb.com>
# Date 1486377802 28800
# Mon Feb 06 02:43:22 2017 -0800
# Node ID f7a3dffec18438cffeef930c8e2ed4f2da0bd4bb
# Parent 090d16362edd806ec4843c1f0b49d331bec6e524
lazyremotenamedict: make iteritems able to not check whether nodes exist
Similar to `keys()` method, we don't always want to resolve every node
in the changelog, sometimes all we're interested in is the node hash.
diff --git a/remotenames.py b/remotenames.py
--- a/remotenames.py
+++ b/remotenames.py
@@ -367,6 +367,20 @@ class lazyremotenamedict(UserDict.DictMi
return self.cache.keys()
return self.potentialentries.keys()
+ def iteritems(self, resolvekeys=None):
+ """Iterate over (name, node) tuples
+
+ `resolvekeys` has the same meaning as in `keys()` method"""
+ if not self.loaded:
+ self._load()
+ if resolvekeys is None:
+ resolvekeys = self._repo.ui.configbool("remotenames",
+ "resolvekeys", True)
+ for k, vtup in self.potentialentries.iteritems():
+ if resolvekeys:
+ self._fetchandcache(k)
+ yield (k, [bin(vtup[0])])
+
class remotenames(dict):
"""This class encapsulates all the remotenames state. It also contains
methods to access that state in convenient ways. Remotenames are lazy
More information about the Mercurial-devel
mailing list