comparison mercurial/revset.py @ 25143:91c49621b2b8

_revancestors: use 'next' to remove the verbose try except clauses The 'next()' built-in can return a default value, making the final iteration case simpler and clearer.
author Pierre-Yves David <pierre-yves.david@fb.com>
date Sun, 17 May 2015 17:54:58 -0700
parents adfe4d9680bf
children 81a395447b34
comparison
equal deleted inserted replaced
25142:24140873ca4c 25143:91c49621b2b8
26 26
27 def iterate(): 27 def iterate():
28 revs.sort(reverse=True) 28 revs.sort(reverse=True)
29 irevs = iter(revs) 29 irevs = iter(revs)
30 h = [] 30 h = []
31 try: 31
32 inputrev = irevs.next() 32 inputrev = next(irevs, None)
33 if inputrev is not None:
33 heapq.heappush(h, -inputrev) 34 heapq.heappush(h, -inputrev)
34 except StopIteration:
35 return
36 35
37 seen = set() 36 seen = set()
38 while h: 37 while h:
39 current = -heapq.heappop(h) 38 current = -heapq.heappop(h)
40 if current == inputrev: 39 if current == inputrev:
41 try: 40 inputrev = next(irevs, None)
42 inputrev = irevs.next() 41 if inputrev is not None:
43 heapq.heappush(h, -inputrev) 42 heapq.heappush(h, -inputrev)
44 except StopIteration:
45 pass
46 if current not in seen: 43 if current not in seen:
47 seen.add(current) 44 seen.add(current)
48 yield current 45 yield current
49 for parent in cl.parentrevs(current)[:cut]: 46 for parent in cl.parentrevs(current)[:cut]:
50 if parent != node.nullrev: 47 if parent != node.nullrev: