D4391: perf: add function for obtaining manifest revision
indygreg (Gregory Szorc)
phabricator at mercurial-scm.org
Mon Aug 27 16:01:14 UTC 2018
indygreg created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.
REVISION SUMMARY
This will use the modern API if available or fall back to the
legacy direct revlog access case. Without this, the perf command
won't work on all code bases.
REPOSITORY
rHG Mercurial
REVISION DETAIL
https://phab.mercurial-scm.org/D4391
AFFECTED FILES
contrib/perf.py
CHANGE DETAILS
diff --git a/contrib/perf.py b/contrib/perf.py
--- a/contrib/perf.py
+++ b/contrib/perf.py
@@ -1127,6 +1127,16 @@
with ready:
ready.wait()
+def _manifestrevision(repo, mnode):
+ ml = repo.manifestlog
+
+ if util.safehasattr(ml, 'getstorage'):
+ store = ml.getstorage(b'')
+ else:
+ store = ml._revlog
+
+ return store.revision(mnode)
+
@command('perfbdiff', revlogopts + formatteropts + [
('', 'count', 1, 'number of revisions to test (when using --startrev)'),
('', 'alldata', False, 'test bdiffs for all associated revisions'),
@@ -1172,9 +1182,9 @@
if opts['alldata']:
# Load revisions associated with changeset.
ctx = repo[rev]
- mtext = repo.manifestlog._revlog.revision(ctx.manifestnode())
+ mtext = _manifestrevision(repo, ctx.manifestnode())
for pctx in ctx.parents():
- pman = repo.manifestlog._revlog.revision(pctx.manifestnode())
+ pman = _manifestrevision(repo, pctx.manifestnode())
textpairs.append((pman, mtext))
# Load filelog revisions by iterating manifest delta.
@@ -1264,9 +1274,9 @@
if opts['alldata']:
# Load revisions associated with changeset.
ctx = repo[rev]
- mtext = repo.manifestlog._revlog.revision(ctx.manifestnode())
+ mtext = _manifestrevision(repo, ctx.manifestnode())
for pctx in ctx.parents():
- pman = repo.manifestlog._revlog.revision(pctx.manifestnode())
+ pman = _manifestrevision(repo, pctx.manifestnode())
textpairs.append((pman, mtext))
# Load filelog revisions by iterating manifest delta.
To: indygreg, #hg-reviewers
Cc: mercurial-devel
More information about the Mercurial-devel
mailing list