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

login
register
mail settings
Submitter phabricator
Date March 19, 2018, 8:06 p.m.
Message ID <5b9710d8a1b7aff31e99687e43945f0a@localhost.localdomain>
Download mbox | patch
Permalink /patch/29638/
State Not Applicable
Headers show

Comments

phabricator - March 19, 2018, 8:06 p.m.
This revision was automatically updated to reflect the committed changes.
Closed by commit rHG40583c7afd63: stack: add a new module for stack-related commands (authored by lothiraldan, committed by ).

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D2395?vs=6212&id=7124

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

AFFECTED FILES
  mercurial/stack.py

CHANGE DETAILS




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

Patch

diff --git a/mercurial/stack.py b/mercurial/stack.py
new file mode 100644
--- /dev/null
+++ b/mercurial/stack.py
@@ -0,0 +1,27 @@ 
+# stack.py - Mercurial functions for stack definition
+#
+#  Copyright Matt Mackall <mpm@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])