equal
deleted
inserted
replaced
694 p = revlog_constants.INDEX_ENTRY_V1.pack(*entry[:8]) |
694 p = revlog_constants.INDEX_ENTRY_V1.pack(*entry[:8]) |
695 if rev == 0: |
695 if rev == 0: |
696 p = p[revlog_constants.INDEX_HEADER.size :] |
696 p = p[revlog_constants.INDEX_HEADER.size :] |
697 return p |
697 return p |
698 |
698 |
|
699 def headrevs(self, excluded_revs=None): |
|
700 count = len(self) |
|
701 if not count: |
|
702 return [nullrev] |
|
703 # we won't iter over filtered rev so nobody is a head at start |
|
704 ishead = [0] * (count + 1) |
|
705 revs = range(count) |
|
706 if excluded_revs is not None: |
|
707 revs = (r for r in revs if r not in excluded_revs) |
|
708 |
|
709 for r in revs: |
|
710 ishead[r] = 1 # I may be an head |
|
711 e = self[r] |
|
712 ishead[e[5]] = ishead[e[6]] = 0 # my parent are not |
|
713 return [r for r, val in enumerate(ishead) if val] |
|
714 |
699 |
715 |
700 class IndexObject(BaseIndexObject): |
716 class IndexObject(BaseIndexObject): |
701 def __init__(self, data): |
717 def __init__(self, data): |
702 assert len(data) % self.entry_size == 0, ( |
718 assert len(data) % self.entry_size == 0, ( |
703 len(data), |
719 len(data), |