diff -r 8b4a8a9176e2 -r 7361d8244efb mercurial/revset.py --- a/mercurial/revset.py Sat Nov 01 17:30:57 2014 -0500 +++ b/mercurial/revset.py Sat Nov 01 22:58:30 2014 +0000 @@ -2642,14 +2642,15 @@ self._ascending = not self._ascending def first(self): - if self: - return self._list.first() + for x in self: + return x return None def last(self): - if self: - return self._list.last() - return None + self.reverse() + val = self.first() + self.reverse() + return val class generatorset(abstractsmartset): """Wrap a generator for lazy iteration