mercurial/revlog.py
changeset 6144 08e0825b8106
parent 5910 b9a830fa10f6
child 6211 f89fd07fc51d
equal deleted inserted replaced
6143:5b159ebb19cf 6144:08e0825b8106
   931         # check rev flags
   931         # check rev flags
   932         if self.index[rev][0] & 0xFFFF:
   932         if self.index[rev][0] & 0xFFFF:
   933             raise RevlogError(_('incompatible revision flag %x') %
   933             raise RevlogError(_('incompatible revision flag %x') %
   934                               (self.index[rev][0] & 0xFFFF))
   934                               (self.index[rev][0] & 0xFFFF))
   935 
   935 
   936         if self._inline:
   936         df = None
   937             # we probably have the whole chunk cached
       
   938             df = None
       
   939         else:
       
   940             df = self.opener(self.datafile)
       
   941 
   937 
   942         # do we have useful data cached?
   938         # do we have useful data cached?
   943         if self._cache and self._cache[1] >= base and self._cache[1] < rev:
   939         if self._cache and self._cache[1] >= base and self._cache[1] < rev:
   944             base = self._cache[1]
   940             base = self._cache[1]
   945             text = str(self._cache[2])
   941             text = str(self._cache[2])
   946             self._loadindex(base, rev + 1)
   942             self._loadindex(base, rev + 1)
       
   943             if not self._inline and rev > base + 1:
       
   944                 df = self.opener(self.datafile)
   947         else:
   945         else:
   948             self._loadindex(base, rev + 1)
   946             self._loadindex(base, rev + 1)
       
   947             if not self._inline and rev > base:
       
   948                 df = self.opener(self.datafile)
   949             text = self.chunk(base, df=df)
   949             text = self.chunk(base, df=df)
   950 
   950 
   951         bins = [self.chunk(r, df) for r in xrange(base + 1, rev + 1)]
   951         bins = [self.chunk(r, df) for r in xrange(base + 1, rev + 1)]
   952         text = mdiff.patches(text, bins)
   952         text = mdiff.patches(text, bins)
   953         p1, p2 = self.parents(node)
   953         p1, p2 = self.parents(node)