Closed by commit rHG7762a295fd4d: nodemap: use an explicit "Block" object in the reference implementation (authored by marmoute). This revision was automatically updated to reflect the committed changes. This revision was not accepted when it landed; it landed in state "Needs Review".
CHANGED PRIOR TO COMMIT https://phab.mercurial-scm.org/D7842?vs=19890&id=20110#toc REPOSITORY rHG Mercurial CHANGES SINCE LAST UPDATE https://phab.mercurial-scm.org/D7842?vs=19890&id=20110 CHANGES SINCE LAST ACTION https://phab.mercurial-scm.org/D7842/new/ REVISION DETAIL https://phab.mercurial-scm.org/D7842 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 @@ -216,6 +216,12 @@ return int(hex_digit, 16) +class Block(dict): + """represent a block of the Trie + + contains up to 16 entry indexed from 0 to 15""" + + def _build_trie(index): """build a nodemap trie @@ -224,7 +230,7 @@ Each block is a dictionary with keys in `[0, 15]`. Values are either another block or a revision number. """ - root = {} + root = Block() for rev in range(len(index)): hex = nodemod.hex(index[rev][7]) _insert_into_block(index, 0, root, rev, hex) @@ -253,7 +259,7 @@ # vertices to fit both entry. other_hex = nodemod.hex(index[entry][7]) other_rev = entry - new = {} + new = Block() block[hex_digit] = new _insert_into_block(index, level + 1, new, other_rev, other_hex) _insert_into_block(index, level + 1, new, current_rev, current_hex) To: marmoute, #hg-reviewers Cc: durin42, mercurial-devel _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel