mercurial/revlog.py
changeset 35635 0b52c0ecbc23
parent 35634 b43578ec483a
child 35636 8108bb51309d
equal deleted inserted replaced
35634:b43578ec483a 35635:0b52c0ecbc23
  1899                               (self.indexfile))
  1899                               (self.indexfile))
  1900         if node == wdirid:
  1900         if node == wdirid:
  1901             raise RevlogError(_("%s: attempt to add wdir revision") %
  1901             raise RevlogError(_("%s: attempt to add wdir revision") %
  1902                               (self.indexfile))
  1902                               (self.indexfile))
  1903 
  1903 
       
  1904         if self._inline:
       
  1905             fh = ifh
       
  1906         else:
       
  1907             fh = dfh
       
  1908 
  1904         btext = [rawtext]
  1909         btext = [rawtext]
  1905         def buildtext():
  1910         def buildtext():
  1906             if btext[0] is not None:
  1911             if btext[0] is not None:
  1907                 return btext[0]
  1912                 return btext[0]
  1908             baserev = cachedelta[0]
  1913             baserev = cachedelta[0]
  1913             hlen = struct.calcsize(">lll")
  1918             hlen = struct.calcsize(">lll")
  1914             if delta[:hlen] == mdiff.replacediffheader(self.rawsize(baserev),
  1919             if delta[:hlen] == mdiff.replacediffheader(self.rawsize(baserev),
  1915                                                        len(delta) - hlen):
  1920                                                        len(delta) - hlen):
  1916                 btext[0] = delta[hlen:]
  1921                 btext[0] = delta[hlen:]
  1917             else:
  1922             else:
  1918                 if self._inline:
       
  1919                     fh = ifh
       
  1920                 else:
       
  1921                     fh = dfh
       
  1922                 basetext = self.revision(baserev, _df=fh, raw=True)
  1923                 basetext = self.revision(baserev, _df=fh, raw=True)
  1923                 btext[0] = mdiff.patch(basetext, delta)
  1924                 btext[0] = mdiff.patch(basetext, delta)
  1924 
  1925 
  1925             try:
  1926             try:
  1926                 res = self._processflags(btext[0], flags, 'read', raw=True)
  1927                 res = self._processflags(btext[0], flags, 'read', raw=True)
  1945                     # deltas based on a censored revision must replace the
  1946                     # deltas based on a censored revision must replace the
  1946                     # full content in one patch, so delta works everywhere
  1947                     # full content in one patch, so delta works everywhere
  1947                     header = mdiff.replacediffheader(self.rawsize(rev), len(t))
  1948                     header = mdiff.replacediffheader(self.rawsize(rev), len(t))
  1948                     delta = header + t
  1949                     delta = header + t
  1949                 else:
  1950                 else:
  1950                     if self._inline:
       
  1951                         fh = ifh
       
  1952                     else:
       
  1953                         fh = dfh
       
  1954                     ptext = self.revision(rev, _df=fh, raw=True)
  1951                     ptext = self.revision(rev, _df=fh, raw=True)
  1955                     delta = mdiff.textdiff(ptext, t)
  1952                     delta = mdiff.textdiff(ptext, t)
  1956             header, data = self.compress(delta)
  1953             header, data = self.compress(delta)
  1957             deltalen = len(header) + len(data)
  1954             deltalen = len(header) + len(data)
  1958             chainbase = self.chainbase(rev)
  1955             chainbase = self.chainbase(rev)