mercurial/dagop.py
changeset 33000 d3d36bcdf036
parent 32999 08e2793d9f65
child 33001 92d0945a15e0
equal deleted inserted replaced
32999:08e2793d9f65 33000:d3d36bcdf036
    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)