[PATCH 3 of 4] stack: add indexedrevs property to contain a list of stack revs and its base
Anton Shestakov
av6 at dwimlabs.net
Sun Sep 22 23:39:51 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 07af98a1e730c1ffa6911c9ab2cdcc06d4ffe52d
# Parent 6430e0ae6d86343980578e36fa26c5e4893170fd
# 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 cached 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
@@ -8,6 +8,7 @@
from __future__ import absolute_import
from . import (
+ util,
)
class stack(object):
@@ -34,3 +35,11 @@ class stack(object):
return bool(self.revs)
__bool__ = __nonzero__
+
+ @util.propertycache
+ 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