comparison mercurial/debugcommands.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 266bb5c86f4b
children bd3b6f363fb9
comparison
equal deleted inserted replaced
49773:523cacdfd324 49774:7c0a383849a8
3238 """show data and statistics about a revlog""" 3238 """show data and statistics about a revlog"""
3239 opts = pycompat.byteskwargs(opts) 3239 opts = pycompat.byteskwargs(opts)
3240 r = cmdutil.openrevlog(repo, b'debugrevlog', file_, opts) 3240 r = cmdutil.openrevlog(repo, b'debugrevlog', file_, opts)
3241 3241
3242 if opts.get(b"dump"): 3242 if opts.get(b"dump"):
3243 numrevs = len(r) 3243 revlog_debug.dump(ui, r)
3244 ui.write(
3245 (
3246 b"# rev p1rev p2rev start end deltastart base p1 p2"
3247 b" rawsize totalsize compression heads chainlen\n"
3248 )
3249 )
3250 ts = 0
3251 heads = set()
3252
3253 for rev in range(numrevs):
3254 dbase = r.deltaparent(rev)
3255 if dbase == -1:
3256 dbase = rev
3257 cbase = r.chainbase(rev)
3258 clen = r.chainlen(rev)
3259 p1, p2 = r.parentrevs(rev)
3260 rs = r.rawsize(rev)
3261 ts = ts + rs
3262 heads -= set(r.parentrevs(rev))
3263 heads.add(rev)
3264 try:
3265 compression = ts / r.end(rev)
3266 except ZeroDivisionError:
3267 compression = 0
3268 ui.write(
3269 b"%5d %5d %5d %5d %5d %10d %4d %4d %4d %7d %9d "
3270 b"%11d %5d %8d\n"
3271 % (
3272 rev,
3273 p1,
3274 p2,
3275 r.start(rev),
3276 r.end(rev),
3277 r.start(dbase),
3278 r.start(cbase),
3279 r.start(p1),
3280 r.start(p2),
3281 rs,
3282 ts,
3283 compression,
3284 len(heads),
3285 clen,
3286 )
3287 )
3288 return 0 3244 return 0
3289 3245
3290 format = r._format_version 3246 format = r._format_version
3291 v = r._format_flags 3247 v = r._format_flags
3292 flags = [] 3248 flags = []