comparison mercurial/revlogutils/debug.py @ 49774:7c0a383849a8

debug-revlog: move the --dump code in `revlogutils` module We have a module dedicated to debug code, let us use it.
author Pierre-Yves David <pierre-yves.david@octobus.net>
date Mon, 07 Nov 2022 14:13:59 -0500
parents da3e37ecacde
children bd3b6f363fb9
comparison
equal deleted inserted replaced
49773:523cacdfd324 49774:7c0a383849a8
214 display = b"%%%ds" % size 214 display = b"%%%ds" % size
215 fm.write(column.name, display, value) 215 fm.write(column.name, display, value)
216 fm.plain(b'\n') 216 fm.plain(b'\n')
217 217
218 fm.end() 218 fm.end()
219
220
221 def dump(ui, revlog):
222 """perform the work for `hg debugrevlog --dump"""
223 # XXX seems redundant with debug index ?
224 r = revlog
225 numrevs = len(r)
226 ui.write(
227 (
228 b"# rev p1rev p2rev start end deltastart base p1 p2"
229 b" rawsize totalsize compression heads chainlen\n"
230 )
231 )
232 ts = 0
233 heads = set()
234
235 for rev in range(numrevs):
236 dbase = r.deltaparent(rev)
237 if dbase == -1:
238 dbase = rev
239 cbase = r.chainbase(rev)
240 clen = r.chainlen(rev)
241 p1, p2 = r.parentrevs(rev)
242 rs = r.rawsize(rev)
243 ts = ts + rs
244 heads -= set(r.parentrevs(rev))
245 heads.add(rev)
246 try:
247 compression = ts / r.end(rev)
248 except ZeroDivisionError:
249 compression = 0
250 ui.write(
251 b"%5d %5d %5d %5d %5d %10d %4d %4d %4d %7d %9d "
252 b"%11d %5d %8d\n"
253 % (
254 rev,
255 p1,
256 p2,
257 r.start(rev),
258 r.end(rev),
259 r.start(dbase),
260 r.start(cbase),
261 r.start(p1),
262 r.start(p2),
263 rs,
264 ts,
265 compression,
266 len(heads),
267 clen,
268 )
269 )