lothiraldan updated this revision to Diff 7733.

REPOSITORY
  rHG Mercurial

CHANGES SINCE LAST UPDATE
  https://phab.mercurial-scm.org/D2400?vs=6216&id=7733

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

AFFECTED FILES
  mercurial/configitems.py
  mercurial/stack.py

CHANGE DETAILS

diff --git a/mercurial/stack.py b/mercurial/stack.py
--- a/mercurial/stack.py
+++ b/mercurial/stack.py
@@ -12,18 +12,34 @@
     scmutil,
 )
 
+baserevspec = "only(%s) and not public()"
+
 def getstack(repo, rev=None):
     """return a sorted 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.
+    the revision.
+
+    There are several config options to restrict the changesets that will be
+    part of the stack:
+
+    [stack]
+    not-merge = (boolean) # The stack will contains only non-merge changesets
+                          # if set to True (default: True)
     """
     if rev is None:
         rev = '.'
 
-    revspec = 'reverse(only(%s) and not public() and not ::merge())'
-    revset = revsetlang.formatspec(revspec, rev)
+    revspecargs = [revsetlang.formatspec(baserevspec, rev)]
+    revspec = ["%r"]
+
+    if repo.ui.configbool("stack", "not-merge"):
+        revspecargs.append("not ::merge()")
+        revspec.append("%r")
+
+    finalrevspec = " and ".join(revspec)
+    revset = revsetlang.formatspec(finalrevspec, *revspecargs)
     revisions = scmutil.revrange(repo, [revset])
     revisions.sort()
     return revisions
diff --git a/mercurial/configitems.py b/mercurial/configitems.py
--- a/mercurial/configitems.py
+++ b/mercurial/configitems.py
@@ -962,6 +962,9 @@
 coreconfigitem('sparse', 'missingwarning',
     default=True,
 )
+coreconfigitem('stack', 'not-merge',
+    default=True,
+)
 coreconfigitem('subrepos', 'allowed',
     default=dynamicdefault,  # to make backporting simpler
 )



To: lothiraldan, #hg-reviewers, indygreg
Cc: indygreg, mercurial-devel
_______________________________________________
Mercurial-devel mailing list
Mercurial-devel@mercurial-scm.org
https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel

Reply via email to