[PATCH 3 of 4] revset: added operations to duck type baseset

Lucas Moscovicz lmoscovicz at fb.com
Mon Feb 10 18:49:51 CST 2014


# HG changeset patch
# User Lucas Moscovicz <lmoscovicz at fb.com>
# Date 1391725777 28800
#      Thu Feb 06 14:29:37 2014 -0800
# Node ID ecb4171110b4f2a9df166ec4a3087ded6577f857
# Parent  969baade3f73a6c26172f0c4337d92abd70fd106
revset: added operations to duck type baseset

Added more operations which are not lazy but only used so far to duck type
baseset.

Their implementations will be changed in future patches.

diff --git a/mercurial/revset.py b/mercurial/revset.py
--- a/mercurial/revset.py
+++ b/mercurial/revset.py
@@ -2099,5 +2099,26 @@
         l = baseset([r for r in self])
         return l + baseset(x)
 
+    def __len__(self):
+        # Basic implementation to be changed in future patches.
+        l = baseset([r for r in self])
+        return len(l)
+
+    def __getitem__(self, x):
+        # Basic implementation to be changed in future patches.
+        l = baseset([r for r in self])
+        return l[x]
+
+    def sort(self, reverse=False):
+        # Basic implementation to be changed in future patches.
+        self._subset = baseset(self._subset)
+        self._subset.sort(reverse=reverse)
+
+    def reverse(self):
+        self._subset.reverse()
+
+    def set(self):
+        return set([r for r in self])
+
 # tell hggettext to extract docstrings from these functions:
 i18nfunctions = symbols.values()


More information about the Mercurial-devel mailing list