equal
deleted
inserted
replaced
548 return filectx(self._repo, f, fileid=n, filelog=flcache[f]) |
548 return filectx(self._repo, f, fileid=n, filelog=flcache[f]) |
549 |
549 |
550 return None |
550 return None |
551 |
551 |
552 def ancestors(self): |
552 def ancestors(self): |
553 seen = set() |
553 visit = {} |
554 visit = [self] |
554 c = self |
555 while visit: |
555 while True: |
556 parents = visit.pop(0).parents() |
556 for parent in c.parents(): |
557 if len(parents) > 1 and parents[1].rev() > parents[0].rev(): |
557 visit[(parent.rev(), parent.node())] = parent |
558 # make sure we return ancestors in reverse revision order |
558 if not visit: |
559 parents = reversed(parents) |
559 break |
560 for parent in parents: |
560 c = visit.pop(max(visit)) |
561 s = str(parent) |
561 yield c |
562 if s not in seen: |
|
563 visit.append(parent) |
|
564 seen.add(s) |
|
565 yield parent |
|
566 |
562 |
567 class workingctx(changectx): |
563 class workingctx(changectx): |
568 """A workingctx object makes access to data related to |
564 """A workingctx object makes access to data related to |
569 the current working directory convenient. |
565 the current working directory convenient. |
570 date - any valid date string or (unixtime, offset), or None. |
566 date - any valid date string or (unixtime, offset), or None. |