Show More
@@ -1040,7 +1040,7 b' class revlog(object):' | |||||
1040 |
|
1040 | |||
1041 | def revdiff(self, rev1, rev2): |
|
1041 | def revdiff(self, rev1, rev2): | |
1042 | """return or calculate a delta between two revisions""" |
|
1042 | """return or calculate a delta between two revisions""" | |
1043 |
if rev1 |
|
1043 | if rev1 != nullrev and self.deltaparent(rev2) == rev1: | |
1044 | return self._chunk(rev2) |
|
1044 | return self._chunk(rev2) | |
1045 |
|
1045 | |||
1046 | return mdiff.textdiff(self.revision(self.node(rev1)), |
|
1046 | return mdiff.textdiff(self.revision(self.node(rev1)), | |
@@ -1048,15 +1048,18 b' class revlog(object):' | |||||
1048 |
|
1048 | |||
1049 | def revision(self, node): |
|
1049 | def revision(self, node): | |
1050 | """return an uncompressed revision of a given node""" |
|
1050 | """return an uncompressed revision of a given node""" | |
|
1051 | cache = nullrev | |||
1051 | if node == nullid: |
|
1052 | if node == nullid: | |
1052 | return "" |
|
1053 | return "" | |
1053 |
if self._cache |
|
1054 | if self._cache: | |
|
1055 | cache = self._cache[1] | |||
|
1056 | if self._cache[0] == node: | |||
1054 | return self._cache[2] |
|
1057 | return self._cache[2] | |
1055 |
|
1058 | |||
1056 | # look up what we need to read |
|
1059 | # look up what we need to read | |
1057 | text = None |
|
1060 | text = None | |
1058 | rev = self.rev(node) |
|
1061 | rev = self.rev(node) | |
1059 |
base = self. |
|
1062 | cache, base, chain = self.deltachain(rev, cache) | |
1060 |
|
1063 | |||
1061 | # check rev flags |
|
1064 | # check rev flags | |
1062 | if self.flags(rev) & ~REVIDX_KNOWN_FLAGS: |
|
1065 | if self.flags(rev) & ~REVIDX_KNOWN_FLAGS: | |
@@ -1064,8 +1067,7 b' class revlog(object):' | |||||
1064 | (self.flags(rev) & ~REVIDX_KNOWN_FLAGS)) |
|
1067 | (self.flags(rev) & ~REVIDX_KNOWN_FLAGS)) | |
1065 |
|
1068 | |||
1066 | # do we have useful data cached? |
|
1069 | # do we have useful data cached? | |
1067 |
if |
|
1070 | if cache and self._cache: | |
1068 | base = self._cache[1] |
|
|||
1069 | text = self._cache[2] |
|
1071 | text = self._cache[2] | |
1070 |
|
1072 | |||
1071 | # drop cache to save memory |
|
1073 | # drop cache to save memory | |
@@ -1076,7 +1078,7 b' class revlog(object):' | |||||
1076 | if text is None: |
|
1078 | if text is None: | |
1077 | text = self._chunk(base) |
|
1079 | text = self._chunk(base) | |
1078 |
|
1080 | |||
1079 |
bins = [self._chunk(r) for r in |
|
1081 | bins = [self._chunk(r) for r in chain] | |
1080 | text = mdiff.patches(text, bins) |
|
1082 | text = mdiff.patches(text, bins) | |
1081 | p1, p2 = self.parents(node) |
|
1083 | p1, p2 = self.parents(node) | |
1082 | if (node != hash(text, p1, p2) and |
|
1084 | if (node != hash(text, p1, p2) and |
General Comments 0
You need to be logged in to leave comments.
Login now