marmoute updated this revision to Diff 19300. REPOSITORY rHG Mercurial
CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D7846?vs=19183&id=19300 CHANGES SINCE LAST ACTION https://phab.mercurial-scm.org/D7846/new/ REVISION DETAIL https://phab.mercurial-scm.org/D7846 AFFECTED FILES mercurial/revlogutils/nodemap.py CHANGE DETAILS diff --git a/mercurial/revlogutils/nodemap.py b/mercurial/revlogutils/nodemap.py --- a/mercurial/revlogutils/nodemap.py +++ b/mercurial/revlogutils/nodemap.py @@ -360,6 +360,19 @@ ret = 1 else: all_revs.remove(r) + nm_rev = _find_node(root, nodemod.hex(index[r][7])) + if nm_rev is None: + msg = b" revision node does not match any entries: %d\n" % r + ui.write_err(msg) + ret = 1 + elif nm_rev != r: + msg = ( + b" revision node does not match the expected revision: " + b"%d != %d\n" % (r, nm_rev) + ) + ui.write_err(msg) + ret = 1 + if all_revs: for r in sorted(all_revs): msg = b" extra revision in nodemap: %d\n" % r @@ -375,3 +388,11 @@ if v is None or isinstance(v, Block): continue yield v + + +def _find_node(block, node): + """find the revision associated with a given node""" + entry = block.get(_to_int(node[0])) + if isinstance(entry, dict): + return _find_node(entry, node[1:]) + return entry To: marmoute, #hg-reviewers Cc: mercurial-devel _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel