equal
deleted
inserted
replaced
1231 return btext[0] |
1231 return btext[0] |
1232 # flush any pending writes here so we can read it in revision |
1232 # flush any pending writes here so we can read it in revision |
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: |
1241 raise RevlogError(_('node %s is not censored') % node) |
1251 raise RevlogError(_('node %s is not censored') % node) |
1242 except CensoredNodeError: |
1252 except CensoredNodeError: |