Skip to content
Snippets Groups Projects
Commit 2f814752 authored by Pulkit Goyal's avatar Pulkit Goyal
Browse files

branchcache: add functions to validate changelog nodes

This patch adds functions to validate closed nodes, validate nodes for a certain
branch and for all the branches. These functions will be used in upcoming
patches.

Differential Revision: https://phab.mercurial-scm.org/D6207
parent 2d428b85
No related branches found
No related tags found
No related merge requests found
...@@ -126,6 +126,10 @@ ...@@ -126,6 +126,10 @@
def clear(self): def clear(self):
self._per_filter.clear() self._per_filter.clear()
def _unknownnode(node):
""" raises ValueError when branchcache found a node which does not exists
"""
raise ValueError(r'node %s does not exist' % pycompat.sysstr(hex(node)))
class branchcache(object): class branchcache(object):
"""A dict like object that hold branches heads cache. """A dict like object that hold branches heads cache.
...@@ -173,6 +177,32 @@ ...@@ -173,6 +177,32 @@
if self._hasnode is None: if self._hasnode is None:
self._hasnode = lambda x: True self._hasnode = lambda x: True
def _verifyclosed(self):
""" verify the closed nodes we have """
if self._closedverified:
return
for node in self._closednodes:
if not self._hasnode(node):
_unknownnode(node)
self._closedverified = True
def _verifybranch(self, branch):
""" verify head nodes for the given branch. If branch is None, verify
for all the branches """
if branch not in self._entries or branch in self._verifiedbranches:
return
for n in self._entries[branch]:
if not self._hasnode(n):
_unknownnode(n)
self._verifiedbranches.add(branch)
def _verifyall(self):
""" verifies nodes of all the branches """
for b in self._entries:
self._verifybranch(b)
def __iter__(self): def __iter__(self):
return iter(self._entries) return iter(self._entries)
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment