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