##// END OF EJS Templates
revlog: special case expanding full-replacement deltas received by exchange...
Mike Edgar -
r24122:da14b8eb default
parent child Browse files
Show More
@@ -1233,8 +1233,18 b' class revlog(object):'
1233 if dfh:
1233 if dfh:
1234 dfh.flush()
1234 dfh.flush()
1235 ifh.flush()
1235 ifh.flush()
1236 basetext = self.revision(self.node(cachedelta[0]))
1236 baserev = cachedelta[0]
1237 btext[0] = mdiff.patch(basetext, cachedelta[1])
1237 delta = cachedelta[1]
1238 # special case deltas which replace entire base; no need to decode
1239 # base revision. this neatly avoids censored bases, which throw when
1240 # they're decoded.
1241 hlen = struct.calcsize(">lll")
1242 if delta[:hlen] == mdiff.replacediffheader(self.rawsize(baserev),
1243 len(delta) - hlen):
1244 btext[0] = delta[hlen:]
1245 else:
1246 basetext = self.revision(self.node(baserev))
1247 btext[0] = mdiff.patch(basetext, delta)
1238 try:
1248 try:
1239 self.checkhash(btext[0], p1, p2, node)
1249 self.checkhash(btext[0], p1, p2, node)
1240 if flags & REVIDX_ISCENSORED:
1250 if flags & REVIDX_ISCENSORED:
General Comments 0
You need to be logged in to leave comments. Login now