contrib/perf.py
changeset 40557 355ae096faef
parent 40556 e14d44772fb3
child 40558 4756a33d0d31
equal deleted inserted replaced
40556:e14d44772fb3 40557:355ae096faef
  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     * `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     * `parent-smallest`: add from the smallest delta (either p1 or p2)
       
  1587     * `storage`: add from the existing precomputed deltas
  1587     """
  1588     """
  1588     opts = _byteskwargs(opts)
  1589     opts = _byteskwargs(opts)
  1589 
  1590 
  1590     rl = cmdutil.openrevlog(repo, b'perfrevlogwrite', file_, opts)
  1591     rl = cmdutil.openrevlog(repo, b'perfrevlogwrite', file_, opts)
  1591     rllen = getlen(ui)(rl)
  1592     rllen = getlen(ui)(rl)
  1593         startrev = rllen + startrev
  1594         startrev = rllen + startrev
  1594     if stoprev < 0:
  1595     if stoprev < 0:
  1595         stoprev = rllen + stoprev
  1596         stoprev = rllen + stoprev
  1596 
  1597 
  1597     source = opts['source']
  1598     source = opts['source']
  1598     validsource = (b'full', b'parent-1', b'parent-2', b'parent-smallest')
  1599     validsource = (b'full', b'parent-1', b'parent-2', b'parent-smallest',
       
  1600                    b'storage')
  1599     if source not in validsource:
  1601     if source not in validsource:
  1600         raise error.Abort('invalid source type: %s' % source)
  1602         raise error.Abort('invalid source type: %s' % source)
  1601 
  1603 
  1602     ### actually gather results
  1604     ### actually gather results
  1603     count = opts['count']
  1605     count = opts['count']
  1717             if len(p1diff) > len(p2diff):
  1719             if len(p1diff) > len(p2diff):
  1718                 parent = p2
  1720                 parent = p2
  1719                 diff = p2diff
  1721                 diff = p2diff
  1720         baserev = orig.rev(parent)
  1722         baserev = orig.rev(parent)
  1721         cachedelta = (baserev, diff)
  1723         cachedelta = (baserev, diff)
       
  1724     elif source == b'storage':
       
  1725         baserev = orig.deltaparent(rev)
       
  1726         cachedelta = (baserev, orig.revdiff(orig.node(baserev), rev))
  1722 
  1727 
  1723     return ((text, tr, linkrev, p1, p2),
  1728     return ((text, tr, linkrev, p1, p2),
  1724             {'node': node, 'flags': flags, 'cachedelta': cachedelta})
  1729             {'node': node, 'flags': flags, 'cachedelta': cachedelta})
  1725 
  1730 
  1726 @contextlib.contextmanager
  1731 @contextlib.contextmanager