mercurial/revlog.py
changeset 77 bed15e766511
parent 76 d993ebd69d28
child 83 9fd5b35cfc45
equal deleted inserted replaced
76:d993ebd69d28 77:bed15e766511
    80         if n < 0: raise KeyError(key)
    80         if n < 0: raise KeyError(key)
    81         pos = n / self.p.s
    81         pos = n / self.p.s
    82         self.p.load(pos)
    82         self.p.load(pos)
    83     def __contains__(self, key):
    83     def __contains__(self, key):
    84         try:
    84         try:
    85             self.p.map[key]
    85             self[key]
    86             return True
    86             return True
    87         except KeyError:
    87         except KeyError:
    88             return False
    88             return False
    89     def __getitem__(self, key):
    89     def __getitem__(self, key):
    90         try:
    90         try:
   432         # loop through our set of deltas
   432         # loop through our set of deltas
   433         pos = 0
   433         pos = 0
   434         while pos < len(data):
   434         while pos < len(data):
   435             l, node, p1, p2, cs = struct.unpack(">l20s20s20s20s",
   435             l, node, p1, p2, cs = struct.unpack(">l20s20s20s20s",
   436                                                 data[pos:pos+84])
   436                                                 data[pos:pos+84])
       
   437             if node in self.nodemap:
       
   438                 raise "already have %s" % hex(node[:4])
   437             link = linkmapper(cs)
   439             link = linkmapper(cs)
   438             delta = data[pos + 84:pos + l]
   440             delta = data[pos + 84:pos + l]
   439             pos += l
   441             pos += l
   440 
   442 
   441             # full versions are inserted when the needed deltas become
   443             # full versions are inserted when the needed deltas become