mercurial/revlog.py
changeset 24122 da14b8eba806
parent 24120 a450e0a2ba0a
child 24123 eb2d41c6ec37
equal deleted inserted replaced
24121:9d0b6ef92eb2 24122:da14b8eba806
  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: