[PATCH 2 of 2 V2] stack: add indexedrevs property to contain a list of stack revs and its base

Anton Shestakov av6 at dwimlabs.net
Wed Sep 25 05:58:46 EDT 2019


# HG changeset patch
# User Anton Shestakov <av6 at dwimlabs.net>
# Date 1569139071 -25200
#      Sun Sep 22 14:57:51 2019 +0700
# Node ID b85dea9c83a01ae6c6045b7dc5e4aa10dfbec8c7
# Parent  2c9d35029c27f3d0e63afc8f618268f079f337c3
# EXP-Topic stack-object
stack: add indexedrevs property to contain a list of stack revs and its base

Sometimes we need to access a specific stack revision by its index, but
stack.revs doesn't support indexing. Obviously we can just do list(st.revs),
but it's more convenient to have a property specifically for this task.

indexedrevs also contains stack base at index 0, so actual stack revisions
start from index 1.

diff --git a/mercurial/stack.py b/mercurial/stack.py
--- a/mercurial/stack.py
+++ b/mercurial/stack.py
@@ -31,3 +31,11 @@ class stack(object):
         return bool(self.revs)
 
     __bool__ = __nonzero__
+
+    @property
+    def indexedrevs(self):
+        if self.revs:
+            base = self._repo[self.revs.first()].p1()
+        else:
+            base = self._repo['.']
+        return [base.rev()] + list(self.revs)


More information about the Mercurial-devel mailing list