mercurial/revlog.py
changeset 38851 781b2720d2ac
parent 38850 6104b203bec8
child 38852 a3dacabd476b
equal deleted inserted replaced
38850:6104b203bec8 38851:781b2720d2ac
   789 indexformatv0 = struct.Struct(">4l20s20s20s")
   789 indexformatv0 = struct.Struct(">4l20s20s20s")
   790 indexformatv0_pack = indexformatv0.pack
   790 indexformatv0_pack = indexformatv0.pack
   791 indexformatv0_unpack = indexformatv0.unpack
   791 indexformatv0_unpack = indexformatv0.unpack
   792 
   792 
   793 class revlogoldindex(list):
   793 class revlogoldindex(list):
   794     def __len__(self):
       
   795         return list.__len__(self) + 1
       
   796     def __getitem__(self, i):
   794     def __getitem__(self, i):
   797         if i == -1 or i == len(self) - 1:
   795         if i == -1 or i == len(self):
   798             return (0, 0, 0, -1, -1, -1, -1, nullid)
   796             return (0, 0, 0, -1, -1, -1, -1, nullid)
   799         return list.__getitem__(self, i)
   797         return list.__getitem__(self, i)
   800 
   798 
   801 class revlogoldio(object):
   799 class revlogoldio(object):
   802     def __init__(self):
   800     def __init__(self):
  1064                 func = self._datafp
  1062                 func = self._datafp
  1065             with func() as fp:
  1063             with func() as fp:
  1066                 yield fp
  1064                 yield fp
  1067 
  1065 
  1068     def tip(self):
  1066     def tip(self):
  1069         return self.node(len(self.index) - 2)
  1067         return self.node(len(self.index) - 1)
  1070     def __contains__(self, rev):
  1068     def __contains__(self, rev):
  1071         return 0 <= rev < len(self)
  1069         return 0 <= rev < len(self)
  1072     def __len__(self):
  1070     def __len__(self):
  1073         return len(self.index) - 1
  1071         return len(self.index)
  1074     def __iter__(self):
  1072     def __iter__(self):
  1075         return iter(pycompat.xrange(len(self)))
  1073         return iter(pycompat.xrange(len(self)))
  1076     def revs(self, start=0, stop=None):
  1074     def revs(self, start=0, stop=None):
  1077         """iterate over all rev in this revlog (from start to stop)"""
  1075         """iterate over all rev in this revlog (from start to stop)"""
  1078         step = 1
  1076         step = 1
  1137             # pure python cache lookup failed
  1135             # pure python cache lookup failed
  1138             n = self._nodecache
  1136             n = self._nodecache
  1139             i = self.index
  1137             i = self.index
  1140             p = self._nodepos
  1138             p = self._nodepos
  1141             if p is None:
  1139             if p is None:
  1142                 p = len(i) - 2
  1140                 p = len(i) - 1
  1143             else:
  1141             else:
  1144                 assert p < len(i)
  1142                 assert p < len(i)
  1145             for r in pycompat.xrange(p, -1, -1):
  1143             for r in pycompat.xrange(p, -1, -1):
  1146                 v = i[r][7]
  1144                 v = i[r][7]
  1147                 n[v] = r
  1145                 n[v] = r