Mercurial > public > mercurial-scm > hg
comparison mercurial/revset.py @ 24938:6db8074f9150
revset: return early when revs is empty
By introducing an early return in _revancestors() when revs is empty,
we make it so inputrev is never None, which simplifies the subsequent
code.
author | Martin von Zweigbergk <martinvonz@google.com> |
---|---|
date | Wed, 06 May 2015 11:29:09 -0700 |
parents | f5518b47cdd1 |
children | 85544a52ee84 |
comparison
equal
deleted
inserted
replaced
24937:f5518b47cdd1 | 24938:6db8074f9150 |
---|---|
23 else: | 23 else: |
24 cut = None | 24 cut = None |
25 cl = repo.changelog | 25 cl = repo.changelog |
26 | 26 |
27 def iterate(): | 27 def iterate(): |
28 revqueue, inputrev = None, None | |
29 h = [] | |
30 | |
31 revs.sort(reverse=True) | 28 revs.sort(reverse=True) |
32 revqueue = util.deque(revs) | 29 revqueue = util.deque(revs) |
33 if revqueue: | 30 if not revqueue: |
34 inputrev = revqueue.popleft() | 31 return |
35 heapq.heappush(h, -inputrev) | 32 |
33 h = [] | |
34 inputrev = revqueue.popleft() | |
35 heapq.heappush(h, -inputrev) | |
36 | 36 |
37 seen = set() | 37 seen = set() |
38 while h: | 38 while h: |
39 current = -heapq.heappop(h) | 39 current = -heapq.heappop(h) |
40 if current not in seen: | 40 if current not in seen: |
41 if inputrev and current == inputrev: | 41 if current == inputrev: |
42 if revqueue: | 42 if revqueue: |
43 inputrev = revqueue.popleft() | 43 inputrev = revqueue.popleft() |
44 heapq.heappush(h, -inputrev) | 44 heapq.heappush(h, -inputrev) |
45 seen.add(current) | 45 seen.add(current) |
46 yield current | 46 yield current |