diff -r 355ae096faef -r 4756a33d0d31 contrib/perf.py --- a/contrib/perf.py Mon Nov 05 15:24:09 2018 +0100 +++ b/contrib/perf.py Mon Nov 05 15:57:31 2018 +0100 @@ -1573,6 +1573,7 @@ (b'', b'count', 3, b'last revision to write'), (b'', b'details', False, b'print timing for every revisions tested'), (b'', b'source', b'full', b'the kind of data feed in the revlog'), + (b'', b'lazydeltabase', True, b'try the provided delta first'), ], b'-c|-m|FILE') def perfrevlogwrite(ui, repo, file_=None, startrev=1000, stoprev=-1, **opts): @@ -1595,6 +1596,7 @@ if stoprev < 0: stoprev = rllen + stoprev + lazydeltabase = opts['lazydeltabase'] source = opts['source'] validsource = (b'full', b'parent-1', b'parent-2', b'parent-smallest', b'storage') @@ -1607,7 +1609,8 @@ raise error.Abort('invalide run count: %d' % count) allresults = [] for c in range(count): - timing = _timeonewrite(ui, rl, source, startrev, stoprev, c + 1) + timing = _timeonewrite(ui, rl, source, startrev, stoprev, c + 1, + lazydeltabase=lazydeltabase) allresults.append(timing) ### consolidate the results in a single list @@ -1670,10 +1673,12 @@ def add(s, x, y, z=None): return None -def _timeonewrite(ui, orig, source, startrev, stoprev, runidx=None): +def _timeonewrite(ui, orig, source, startrev, stoprev, runidx=None, + lazydeltabase=True): timings = [] tr = _faketr() with _temprevlog(ui, orig, startrev) as dest: + dest._lazydeltabase = lazydeltabase revs = list(orig.revs(startrev, stoprev)) total = len(revs) topic = 'adding'