hgext/remotenames.py
branchstable
changeset 47031 f38bf44e077f
parent 45957 89a2afe31e82
child 48966 6000f5b25c9b
equal deleted inserted replaced
47030:bd2ed1032b4e 47031:f38bf44e077f
   100         self._kind = kind  # bookmarks or branches
   100         self._kind = kind  # bookmarks or branches
   101         self._repo = repo
   101         self._repo = repo
   102         self.loaded = False
   102         self.loaded = False
   103 
   103 
   104     def _load(self):
   104     def _load(self):
   105         """ Read the remotenames file, store entries matching selected kind """
   105         """Read the remotenames file, store entries matching selected kind"""
   106         self.loaded = True
   106         self.loaded = True
   107         repo = self._repo
   107         repo = self._repo
   108         for node, rpath, rname in logexchange.readremotenamefile(
   108         for node, rpath, rname in logexchange.readremotenamefile(
   109             repo, self._kind
   109             repo, self._kind
   110         ):
   110         ):
   111             name = rpath + b'/' + rname
   111             name = rpath + b'/' + rname
   112             self.potentialentries[name] = (node, rpath, name)
   112             self.potentialentries[name] = (node, rpath, name)
   113 
   113 
   114     def _resolvedata(self, potentialentry):
   114     def _resolvedata(self, potentialentry):
   115         """ Check that the node for potentialentry exists and return it """
   115         """Check that the node for potentialentry exists and return it"""
   116         if not potentialentry in self.potentialentries:
   116         if not potentialentry in self.potentialentries:
   117             return None
   117             return None
   118         node, remote, name = self.potentialentries[potentialentry]
   118         node, remote, name = self.potentialentries[potentialentry]
   119         repo = self._repo
   119         repo = self._repo
   120         binnode = bin(node)
   120         binnode = bin(node)
   158             return val
   158             return val
   159         else:
   159         else:
   160             return None
   160             return None
   161 
   161 
   162     def keys(self):
   162     def keys(self):
   163         """ Get a list of bookmark or branch names """
   163         """Get a list of bookmark or branch names"""
   164         if not self.loaded:
   164         if not self.loaded:
   165             self._load()
   165             self._load()
   166         return self.potentialentries.keys()
   166         return self.potentialentries.keys()
   167 
   167 
   168     def iteritems(self):
   168     def iteritems(self):
   169         """ Iterate over (name, node) tuples """
   169         """Iterate over (name, node) tuples"""
   170 
   170 
   171         if not self.loaded:
   171         if not self.loaded:
   172             self._load()
   172             self._load()
   173 
   173 
   174         for k, vtup in pycompat.iteritems(self.potentialentries):
   174         for k, vtup in pycompat.iteritems(self.potentialentries):
   188     def __init__(self, repo, *args):
   188     def __init__(self, repo, *args):
   189         self._repo = repo
   189         self._repo = repo
   190         self.clearnames()
   190         self.clearnames()
   191 
   191 
   192     def clearnames(self):
   192     def clearnames(self):
   193         """ Clear all remote names state """
   193         """Clear all remote names state"""
   194         self.bookmarks = lazyremotenamedict(b"bookmarks", self._repo)
   194         self.bookmarks = lazyremotenamedict(b"bookmarks", self._repo)
   195         self.branches = lazyremotenamedict(b"branches", self._repo)
   195         self.branches = lazyremotenamedict(b"branches", self._repo)
   196         self._invalidatecache()
   196         self._invalidatecache()
   197 
   197 
   198     def _invalidatecache(self):
   198     def _invalidatecache(self):