Mercurial > public > mercurial-scm > hg
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 |