mercurial/revlog.py
branchstable
changeset 36748 369aadf7a326
parent 36744 33275ab5e837
child 36760 7bf80d9d9543
equal deleted inserted replaced
36744:33275ab5e837 36748:369aadf7a326
   334         hlen = struct.calcsize(">lll")
   334         hlen = struct.calcsize(">lll")
   335         if delta[:hlen] == mdiff.replacediffheader(revlog.rawsize(baserev),
   335         if delta[:hlen] == mdiff.replacediffheader(revlog.rawsize(baserev),
   336                                                    len(delta) - hlen):
   336                                                    len(delta) - hlen):
   337             btext[0] = delta[hlen:]
   337             btext[0] = delta[hlen:]
   338         else:
   338         else:
   339             basetext = revlog.revision(baserev, _df=fh, raw=True)
   339             # deltabase is rawtext before changed by flag processors, which is
       
   340             # equivalent to non-raw text
       
   341             basetext = revlog.revision(baserev, _df=fh, raw=False)
   340             btext[0] = mdiff.patch(basetext, delta)
   342             btext[0] = mdiff.patch(basetext, delta)
   341 
   343 
   342         try:
   344         try:
   343             res = revlog._processflags(btext[0], flags, 'read', raw=True)
   345             res = revlog._processflags(btext[0], flags, 'read', raw=True)
   344             btext[0], validatehash = res
   346             btext[0], validatehash = res
  2082         p1r, p2r = self.rev(p1), self.rev(p2)
  2084         p1r, p2r = self.rev(p1), self.rev(p2)
  2083 
  2085 
  2084         # full versions are inserted when the needed deltas
  2086         # full versions are inserted when the needed deltas
  2085         # become comparable to the uncompressed text
  2087         # become comparable to the uncompressed text
  2086         if rawtext is None:
  2088         if rawtext is None:
  2087             textlen = mdiff.patchedsize(self.rawsize(cachedelta[0]),
  2089             # need rawtext size, before changed by flag processors, which is
       
  2090             # the non-raw size. use revlog explicitly to avoid filelog's extra
       
  2091             # logic that might remove metadata size.
       
  2092             textlen = mdiff.patchedsize(revlog.size(self, cachedelta[0]),
  2088                                         cachedelta[1])
  2093                                         cachedelta[1])
  2089         else:
  2094         else:
  2090             textlen = len(rawtext)
  2095             textlen = len(rawtext)
  2091 
  2096 
  2092         if deltacomputer is None:
  2097         if deltacomputer is None: