##// END OF EJS Templates
debug-revlog: keep the revlog open for the analysis duration...
marmoute -
r51910:edc44ab7 default
parent child Browse files
Show More
@@ -346,83 +346,86 b' def debug_revlog(ui, revlog):'
346 l[1] = size
346 l[1] = size
347 l[2] += size
347 l[2] += size
348
348
349 numrevs = len(r)
349 with r.reading():
350 for rev in range(numrevs):
350 numrevs = len(r)
351 p1, p2 = r.parentrevs(rev)
351 for rev in range(numrevs):
352 delta = r.deltaparent(rev)
352 p1, p2 = r.parentrevs(rev)
353 if format > 0:
353 delta = r.deltaparent(rev)
354 s = r.rawsize(rev)
354 if format > 0:
355 full_text_total_size += s
355 s = r.rawsize(rev)
356 addsize(s, datasize)
356 full_text_total_size += s
357 if p2 != nodemod.nullrev:
357 addsize(s, datasize)
358 nummerges += 1
358 if p2 != nodemod.nullrev:
359 size = r.length(rev)
359 nummerges += 1
360 if delta == nodemod.nullrev:
360 size = r.length(rev)
361 chainlengths.append(0)
361 if delta == nodemod.nullrev:
362 chainbases.append(r.start(rev))
362 chainlengths.append(0)
363 chainspans.append(size)
363 chainbases.append(r.start(rev))
364 if size == 0:
364 chainspans.append(size)
365 numempty += 1
365 if size == 0:
366 numemptytext += 1
366 numempty += 1
367 numemptytext += 1
368 else:
369 numfull += 1
370 numsnapdepth[0] += 1
371 addsize(size, fullsize)
372 addsize(size, snapsizedepth[0])
367 else:
373 else:
368 numfull += 1
374 nad = (
369 numsnapdepth[0] += 1
375 delta != p1
370 addsize(size, fullsize)
376 and delta != p2
371 addsize(size, snapsizedepth[0])
377 and not r.isancestorrev(delta, rev)
372 else:
378 )
373 nad = (
379 chainlengths.append(chainlengths[delta] + 1)
374 delta != p1 and delta != p2 and not r.isancestorrev(delta, rev)
380 baseaddr = chainbases[delta]
375 )
381 revaddr = r.start(rev)
376 chainlengths.append(chainlengths[delta] + 1)
382 chainbases.append(baseaddr)
377 baseaddr = chainbases[delta]
383 chainspans.append((revaddr - baseaddr) + size)
378 revaddr = r.start(rev)
384 if size == 0:
379 chainbases.append(baseaddr)
385 numempty += 1
380 chainspans.append((revaddr - baseaddr) + size)
386 numemptydelta += 1
381 if size == 0:
387 elif r.issnapshot(rev):
382 numempty += 1
388 addsize(size, semisize)
383 numemptydelta += 1
389 numsemi += 1
384 elif r.issnapshot(rev):
390 depth = r.snapshotdepth(rev)
385 addsize(size, semisize)
391 numsnapdepth[depth] += 1
386 numsemi += 1
392 if nad:
387 depth = r.snapshotdepth(rev)
393 numsnapdepth_nad[depth] += 1
388 numsnapdepth[depth] += 1
394 addsize(size, snapsizedepth[depth])
389 if nad:
395 else:
390 numsnapdepth_nad[depth] += 1
396 addsize(size, deltasize)
391 addsize(size, snapsizedepth[depth])
397 if delta == rev - 1:
398 numprev += 1
399 if delta == p1:
400 nump1prev += 1
401 elif delta == p2:
402 nump2prev += 1
403 elif nad:
404 numprev_nad += 1
405 elif delta == p1:
406 nump1 += 1
407 elif delta == p2:
408 nump2 += 1
409 elif delta != nodemod.nullrev:
410 numother += 1
411 numother_nad += 1
412
413 # Obtain data on the raw chunks in the revlog.
414 if hasattr(r, '_getsegmentforrevs'):
415 segment = r._getsegmentforrevs(rev, rev)[1]
392 else:
416 else:
393 addsize(size, deltasize)
417 segment = r._revlog._getsegmentforrevs(rev, rev)[1]
394 if delta == rev - 1:
418 if segment:
395 numprev += 1
419 chunktype = bytes(segment[0:1])
396 if delta == p1:
420 else:
397 nump1prev += 1
421 chunktype = b'empty'
398 elif delta == p2:
399 nump2prev += 1
400 elif nad:
401 numprev_nad += 1
402 elif delta == p1:
403 nump1 += 1
404 elif delta == p2:
405 nump2 += 1
406 elif delta != nodemod.nullrev:
407 numother += 1
408 numother_nad += 1
409
422
410 # Obtain data on the raw chunks in the revlog.
423 if chunktype not in chunktypecounts:
411 if hasattr(r, '_getsegmentforrevs'):
424 chunktypecounts[chunktype] = 0
412 segment = r._getsegmentforrevs(rev, rev)[1]
425 chunktypesizes[chunktype] = 0
413 else:
414 segment = r._revlog._getsegmentforrevs(rev, rev)[1]
415 if segment:
416 chunktype = bytes(segment[0:1])
417 else:
418 chunktype = b'empty'
419
426
420 if chunktype not in chunktypecounts:
427 chunktypecounts[chunktype] += 1
421 chunktypecounts[chunktype] = 0
428 chunktypesizes[chunktype] += size
422 chunktypesizes[chunktype] = 0
423
424 chunktypecounts[chunktype] += 1
425 chunktypesizes[chunktype] += size
426
429
427 # Adjust size min value for empty cases
430 # Adjust size min value for empty cases
428 for size in (datasize, fullsize, semisize, deltasize):
431 for size in (datasize, fullsize, semisize, deltasize):
General Comments 0
You need to be logged in to leave comments. Login now