# HG changeset patch # User Pierre-Yves David # Date 2014-10-06 18:54:53 # Node ID 88dad916c008f59e0c46540081f3e2e68d0ebe4f # Parent 228b0aafb1ce51cb9a525343c69f53c880c6c659 spanset: implement `first` and `last` methods diff --git a/mercurial/revset.py b/mercurial/revset.py --- a/mercurial/revset.py +++ b/mercurial/revset.py @@ -2862,6 +2862,24 @@ class _spanset(abstractsmartset): def isdescending(self): return self._start >= self._end + def first(self): + if self._ascending: + it = self.fastasc + else: + it = self.fastdesc + for x in it(): + return x + return None + + def last(self): + if self._ascending: + it = self.fastdesc + else: + it = self.fastasc + for x in it(): + return x + return None + class fullreposet(_spanset): """a set containing all revisions in the repo