Mercurial > public > mercurial-scm > hg
comparison mercurial/revlog.py @ 3585:cac2c17bec5a
revlog: more nullrev fixes
author | Benoit Boissinot <benoit.boissinot@ens-lyon.org> |
---|---|
date | Sun, 29 Oct 2006 16:14:55 +0100 |
parents | 8dbbe4dadb48 |
children | 508036290b00 |
comparison
equal
deleted
inserted
replaced
3584:8dbbe4dadb48 | 3585:cac2c17bec5a |
---|---|
465 | 465 |
466 def inlinedata(self): return self.version & REVLOGNGINLINEDATA | 466 def inlinedata(self): return self.version & REVLOGNGINLINEDATA |
467 def tip(self): return self.node(len(self.index) - 1) | 467 def tip(self): return self.node(len(self.index) - 1) |
468 def count(self): return len(self.index) | 468 def count(self): return len(self.index) |
469 def node(self, rev): | 469 def node(self, rev): |
470 return (rev < 0) and nullid or self.index[rev][-1] | 470 return rev == nullrev and nullid or self.index[rev][-1] |
471 def rev(self, node): | 471 def rev(self, node): |
472 try: | 472 try: |
473 return self.nodemap[node] | 473 return self.nodemap[node] |
474 except KeyError: | 474 except KeyError: |
475 raise RevlogError(_('%s: no node %s') % (self.indexfile, hex(node))) | 475 raise RevlogError(_('%s: no node %s') % (self.indexfile, hex(node))) |
488 d = self.index[rev][-3:-1] | 488 d = self.index[rev][-3:-1] |
489 if self.version == REVLOGV0: | 489 if self.version == REVLOGV0: |
490 return (self.rev(d[0]), self.rev(d[1])) | 490 return (self.rev(d[0]), self.rev(d[1])) |
491 return d | 491 return d |
492 def start(self, rev): | 492 def start(self, rev): |
493 if rev < 0: | 493 if rev == nullrev: |
494 return 0 | 494 return 0 |
495 if self.version != REVLOGV0: | 495 if self.version != REVLOGV0: |
496 return self.ngoffset(self.index[rev][0]) | 496 return self.ngoffset(self.index[rev][0]) |
497 return self.index[rev][0] | 497 return self.index[rev][0] |
498 | 498 |
530 l = mdiff.patchedsize(l, self.chunk(x)) | 530 l = mdiff.patchedsize(l, self.chunk(x)) |
531 return l | 531 return l |
532 """ | 532 """ |
533 | 533 |
534 def length(self, rev): | 534 def length(self, rev): |
535 if rev < 0: | 535 if rev == nullrev: |
536 return 0 | 536 return 0 |
537 else: | 537 else: |
538 return self.index[rev][1] | 538 return self.index[rev][1] |
539 def base(self, rev): return (rev < 0) and rev or self.index[rev][-5] | 539 def base(self, rev): |
540 if (rev == nullrev): | |
541 return nullrev | |
542 else: | |
543 return self.index[rev][-5] | |
540 | 544 |
541 def reachable(self, rev, stop=None): | 545 def reachable(self, rev, stop=None): |
542 reachable = {} | 546 reachable = {} |
543 visit = [rev] | 547 visit = [rev] |
544 reachable[rev] = 1 | 548 reachable[rev] = 1 |