revset: use 'next()' to detect end of iteration in 'last'
The 'next()' built-in can return a default value, allow to get rid of the
confusing try/except code flow.
--- a/mercurial/revset.py Sun May 17 17:58:39 2015 -0700
+++ b/mercurial/revset.py Sun May 17 18:00:38 2015 -0700
@@ -1172,12 +1172,11 @@
result = []
it = iter(os)
for x in xrange(lim):
- try:
- y = it.next()
- if y in ss:
- result.append(y)
- except (StopIteration):
+ y = next(it, None)
+ if y is None:
break
+ elif y in ss:
+ result.append(y)
return baseset(result)
def maxrev(repo, subset, x):