equal
deleted
inserted
replaced
1578 def perfrevlogwrite(ui, repo, file_=None, startrev=1000, stoprev=-1, **opts): |
1578 def perfrevlogwrite(ui, repo, file_=None, startrev=1000, stoprev=-1, **opts): |
1579 """Benchmark writing a series of revisions to a revlog. |
1579 """Benchmark writing a series of revisions to a revlog. |
1580 |
1580 |
1581 Possible source values are: |
1581 Possible source values are: |
1582 * `full`: add from a full text (default). |
1582 * `full`: add from a full text (default). |
|
1583 * `parent-1`: add from a delta to the first parent |
1583 """ |
1584 """ |
1584 opts = _byteskwargs(opts) |
1585 opts = _byteskwargs(opts) |
1585 |
1586 |
1586 rl = cmdutil.openrevlog(repo, b'perfrevlogwrite', file_, opts) |
1587 rl = cmdutil.openrevlog(repo, b'perfrevlogwrite', file_, opts) |
1587 rllen = getlen(ui)(rl) |
1588 rllen = getlen(ui)(rl) |
1589 startrev = rllen + startrev |
1590 startrev = rllen + startrev |
1590 if stoprev < 0: |
1591 if stoprev < 0: |
1591 stoprev = rllen + stoprev |
1592 stoprev = rllen + stoprev |
1592 |
1593 |
1593 source = opts['source'] |
1594 source = opts['source'] |
1594 validsource = (b'full',) |
1595 validsource = (b'full', b'parent-1') |
1595 if source not in validsource: |
1596 if source not in validsource: |
1596 raise error.Abort('invalid source type: %s' % source) |
1597 raise error.Abort('invalid source type: %s' % source) |
1597 |
1598 |
1598 ### actually gather results |
1599 ### actually gather results |
1599 count = opts['count'] |
1600 count = opts['count'] |
1691 cachedelta = None |
1692 cachedelta = None |
1692 text = None |
1693 text = None |
1693 |
1694 |
1694 if source == b'full': |
1695 if source == b'full': |
1695 text = orig.revision(rev) |
1696 text = orig.revision(rev) |
|
1697 elif source == b'parent-1': |
|
1698 baserev = orig.rev(p1) |
|
1699 cachedelta = (baserev, orig.revdiff(p1, rev)) |
1696 |
1700 |
1697 return ((text, tr, linkrev, p1, p2), |
1701 return ((text, tr, linkrev, p1, p2), |
1698 {'node': node, 'flags': flags, 'cachedelta': cachedelta}) |
1702 {'node': node, 'flags': flags, 'cachedelta': cachedelta}) |
1699 |
1703 |
1700 @contextlib.contextmanager |
1704 @contextlib.contextmanager |