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