diff -r db19f6be0442 -r 61cf3d39fd9e mercurial/revlogutils/debug.py --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/mercurial/revlogutils/debug.py Mon May 30 23:24:14 2022 +0200 @@ -0,0 +1,51 @@ +# revlogutils/debug.py - utility used for revlog debuging +# +# Copyright 2005-2007 Olivia Mackall +# Copyright 2022 Octobus +# +# This software may be used and distributed according to the terms of the +# GNU General Public License version 2 or any later version. + +from .. import ( + node as nodemod, +) + + +def debug_index( + ui, + repo, + formatter, + revlog, + full_node, +): + """display index data for a revlog""" + if full_node: + hexfn = nodemod.hex + else: + hexfn = nodemod.short + + idlen = 12 + for i in revlog: + idlen = len(hexfn(revlog.node(i))) + break + + fm = formatter + + fm.plain( + b' rev linkrev %s %s p2\n' + % (b'nodeid'.ljust(idlen), b'p1'.ljust(idlen)) + ) + + for rev in revlog: + node = revlog.node(rev) + parents = revlog.parents(node) + + fm.startitem() + fm.write(b'rev', b'%6d ', rev) + fm.write(b'linkrev', b'%7d ', revlog.linkrev(rev)) + fm.write(b'node', b'%s ', hexfn(node)) + fm.write(b'p1', b'%s ', hexfn(parents[0])) + fm.write(b'p2', b'%s', hexfn(parents[1])) + fm.plain(b'\n') + + fm.end()