comparison mercurial/revlog.py @ 77:bed15e766511

Fix bug in lazymap code Add a sanity check to addgroup
author mpm@selenic.com
date Tue, 17 May 2005 01:07:01 -0800
parents d993ebd69d28
children 9fd5b35cfc45
comparison
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