Mercurial > public > mercurial-scm > hg
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: |