equal
deleted
inserted
replaced
35 |
35 |
36 inputrev = next(irevs, None) |
36 inputrev = next(irevs, None) |
37 if inputrev is not None: |
37 if inputrev is not None: |
38 heapq.heappush(pendingheap, -inputrev) |
38 heapq.heappush(pendingheap, -inputrev) |
39 |
39 |
40 seen = set() |
40 lastrev = None |
41 while pendingheap: |
41 while pendingheap: |
42 currev = -heapq.heappop(pendingheap) |
42 currev = -heapq.heappop(pendingheap) |
43 if currev == inputrev: |
43 if currev == inputrev: |
44 inputrev = next(irevs, None) |
44 inputrev = next(irevs, None) |
45 if inputrev is not None: |
45 if inputrev is not None: |
46 heapq.heappush(pendingheap, -inputrev) |
46 heapq.heappush(pendingheap, -inputrev) |
47 if currev not in seen: |
47 if currev != lastrev: |
48 seen.add(currev) |
48 lastrev = currev |
49 yield currev |
49 yield currev |
50 try: |
50 try: |
51 for prev in cl.parentrevs(currev)[:cut]: |
51 for prev in cl.parentrevs(currev)[:cut]: |
52 if prev != node.nullrev: |
52 if prev != node.nullrev: |
53 heapq.heappush(pendingheap, -prev) |
53 heapq.heappush(pendingheap, -prev) |