D2395: stack: add a new module for stack-related commands

lothiraldan (Boris Feld) phabricator at mercurial-scm.org
Fri Feb 23 10:36:40 UTC 2018


lothiraldan created this revision.
Herald added a subscriber: mercurial-devel.
Herald added a reviewer: hg-reviewers.

REVISION SUMMARY
  Bootstrap the module with a function that returns the stack for the current
  revision. The definition of the stack is ihnerited from histedit default
  revset and used by hg show stack.

REPOSITORY
  rHG Mercurial

REVISION DETAIL
  https://phab.mercurial-scm.org/D2395

AFFECTED FILES
  mercurial/stack.py

CHANGE DETAILS

diff --git a/mercurial/stack.py b/mercurial/stack.py
new file mode 100644
--- /dev/null
+++ b/mercurial/stack.py
@@ -0,0 +1,24 @@
+# stack.py - Mercurial functions for stack definition
+#
+#  Copyright Matt Mackall <mpm at selenic.com> and other
+#
+# This software may be used and distributed according to the terms of the
+# GNU General Public License version 2 or any later version.
+
+from __future__ import absolute_import
+
+from . import revsetlang, scmutil
+
+def getstack(repo, rev=None):
+    """return a smartrev of the stack containing either rev if it is not None
+    or the current working directory parent.
+
+    The stack will always contain all drafts changesets which are ancestors to
+    the revision and are not merges.
+    """
+    if rev is None:
+        rev = '.'
+
+    revspec = 'reverse(only(%s) and not public() and not ::merge())'
+    revset = revsetlang.formatspec(revspec, rev)
+    return scmutil.revrange(repo, [revset])



To: lothiraldan, #hg-reviewers
Cc: mercurial-devel


More information about the Mercurial-devel mailing list