Mercurial > public > mercurial-scm > hg-stable
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 ) |