1609 to True when generating changegroups or in debug commands. |
1609 to True when generating changegroups or in debug commands. |
1610 """ |
1610 """ |
1611 return self._revisiondata(nodeorrev, _df, raw=raw) |
1611 return self._revisiondata(nodeorrev, _df, raw=raw) |
1612 |
1612 |
1613 def _revisiondata(self, nodeorrev, _df=None, raw=False): |
1613 def _revisiondata(self, nodeorrev, _df=None, raw=False): |
|
1614 # deal with <nodeorrev> argument type |
1614 if isinstance(nodeorrev, int): |
1615 if isinstance(nodeorrev, int): |
1615 rev = nodeorrev |
1616 rev = nodeorrev |
1616 node = self.node(rev) |
1617 node = self.node(rev) |
1617 else: |
1618 else: |
1618 node = nodeorrev |
1619 node = nodeorrev |
1619 rev = None |
1620 rev = None |
1620 |
1621 |
|
1622 # fast path the special `nullid` rev |
1621 if node == nullid: |
1623 if node == nullid: |
1622 return "" |
1624 return "" |
1623 |
1625 |
|
1626 # revision in the cache (could be useful to apply delta) |
1624 cachedrev = None |
1627 cachedrev = None |
|
1628 # the revlog's flag for this revision |
|
1629 # (usually alter its state or content) |
1625 flags = None |
1630 flags = None |
|
1631 # The text as stored inside the revlog. Might be the revision or might |
|
1632 # need to be processed to retrieve the revision. |
1626 rawtext = None |
1633 rawtext = None |
|
1634 # An intermediate text to apply deltas to |
1627 basetext = None |
1635 basetext = None |
|
1636 |
|
1637 # Check if we have the entry in cache |
|
1638 # The cache entry looks like (node, rev, rawtext) |
1628 if self._revisioncache: |
1639 if self._revisioncache: |
1629 if self._revisioncache[0] == node: |
1640 if self._revisioncache[0] == node: |
1630 # _cache only stores rawtext |
1641 # _cache only stores rawtext |
1631 # rawtext is reusable. but we might need to run flag processors |
1642 # rawtext is reusable. but we might need to run flag processors |
1632 rawtext = self._revisioncache[2] |
1643 rawtext = self._revisioncache[2] |
1633 if raw: |
1644 if raw: |
|
1645 # if we don't want to process the raw text and that raw |
|
1646 # text is cached, we can exit early. |
1634 return rawtext |
1647 return rawtext |
1635 # duplicated, but good for perf |
1648 # duplicated, but good for perf |
1636 if rev is None: |
1649 if rev is None: |
1637 rev = self.rev(node) |
1650 rev = self.rev(node) |
1638 if flags is None: |
1651 if flags is None: |