##// END OF EJS Templates
parendelta: fix computation of base rev (fixes issue2337)...
Benoit Boissinot -
r11963:7c3aa579 default
parent child Browse files
Show More
@@ -1171,32 +1171,36 b' class revlog(object):'
1171
1171
1172 curr = len(self)
1172 curr = len(self)
1173 prev = curr - 1
1173 prev = curr - 1
1174 base = self.base(prev)
1174 base = curr
1175 offset = self.end(prev)
1175 offset = self.end(prev)
1176 flags = 0
1176 flags = 0
1177 d = None
1177 d = None
1178
1178
1179 if curr:
1179 if self._parentdelta:
1180 deltarev, deltanode = self.rev(p1), p1
1181 flags = REVIDX_PARENTDELTA
1182 else:
1183 deltarev, deltanode = prev, self.node(prev)
1184
1185 # should we try to build a delta?
1186 if deltarev != nullrev:
1180 # can we use the cached delta?
1187 # can we use the cached delta?
1181 if cachedelta:
1188 if cachedelta:
1182 cacherev, d = cachedelta
1189 cacherev, d = cachedelta
1183 if cacherev != prev:
1190 if cacherev != deltarev:
1184 d = None
1191 d = None
1185 if not d:
1192 if d is None:
1186 if self._parentdelta:
1193 ptext = self.revision(deltanode)
1187 ptext = self.revision(p1)
1188 flags = REVIDX_PARENTDELTA
1189 else:
1190 ptext = self.revision(self.node(prev))
1191 d = mdiff.textdiff(ptext, text)
1194 d = mdiff.textdiff(ptext, text)
1192 data = compress(d)
1195 data = compress(d)
1193 l = len(data[1]) + len(data[0])
1196 l = len(data[1]) + len(data[0])
1197 base = self.base(deltarev)
1194 dist = l + offset - self.start(base)
1198 dist = l + offset - self.start(base)
1195
1199
1196 # full versions are inserted when the needed deltas
1200 # full versions are inserted when the needed deltas
1197 # become comparable to the uncompressed text
1201 # become comparable to the uncompressed text
1198 # or the base revision is punched
1202 # or the base revision is punched
1199 if (not curr or dist > len(text) * 2 or
1203 if (d is None or dist > len(text) * 2 or
1200 (self.flags(base) & REVIDX_PUNCHED_FLAG)):
1204 (self.flags(base) & REVIDX_PUNCHED_FLAG)):
1201 data = compress(text)
1205 data = compress(text)
1202 l = len(data[1]) + len(data[0])
1206 l = len(data[1]) + len(data[0])
General Comments 0
You need to be logged in to leave comments. Login now