##// END OF EJS Templates
perf: add `parent-smallest` as possible source for perfrevlogwrite...
Boris Feld -
r40589:e14d4477 default
parent child Browse files
Show More
@@ -1583,6 +1583,7 b' def perfrevlogwrite(ui, repo, file_=None'
1583 * `parent-1`: add from a delta to the first parent
1583 * `parent-1`: add from a delta to the first parent
1584 * `parent-2`: add from a delta to the second parent if it exists
1584 * `parent-2`: add from a delta to the second parent if it exists
1585 (use a delta from the first parent otherwise)
1585 (use a delta from the first parent otherwise)
1586 * `parent-smallest`: add from the smallest delta (either p1 or p2)
1586 """
1587 """
1587 opts = _byteskwargs(opts)
1588 opts = _byteskwargs(opts)
1588
1589
@@ -1594,7 +1595,7 b' def perfrevlogwrite(ui, repo, file_=None'
1594 stoprev = rllen + stoprev
1595 stoprev = rllen + stoprev
1595
1596
1596 source = opts['source']
1597 source = opts['source']
1597 validsource = (b'full', b'parent-1', b'parent-2')
1598 validsource = (b'full', b'parent-1', b'parent-2', b'parent-smallest')
1598 if source not in validsource:
1599 if source not in validsource:
1599 raise error.Abort('invalid source type: %s' % source)
1600 raise error.Abort('invalid source type: %s' % source)
1600
1601
@@ -1707,6 +1708,17 b' def _getrevisionseed(orig, rev, tr, sour'
1707 parent = p1
1708 parent = p1
1708 baserev = orig.rev(parent)
1709 baserev = orig.rev(parent)
1709 cachedelta = (baserev, orig.revdiff(parent, rev))
1710 cachedelta = (baserev, orig.revdiff(parent, rev))
1711 elif source == b'parent-smallest':
1712 p1diff = orig.revdiff(p1, rev)
1713 parent = p1
1714 diff = p1diff
1715 if p2 != nullid:
1716 p2diff = orig.revdiff(p2, rev)
1717 if len(p1diff) > len(p2diff):
1718 parent = p2
1719 diff = p2diff
1720 baserev = orig.rev(parent)
1721 cachedelta = (baserev, diff)
1710
1722
1711 return ((text, tr, linkrev, p1, p2),
1723 return ((text, tr, linkrev, p1, p2),
1712 {'node': node, 'flags': flags, 'cachedelta': cachedelta})
1724 {'node': node, 'flags': flags, 'cachedelta': cachedelta})
General Comments 0
You need to be logged in to leave comments. Login now