lothiraldan created this revision. Herald added a subscriber: mercurial-devel. Herald added a reviewer: hg-reviewers.
REVISION SUMMARY First extrat the not-merge part in its own configuration knob `stack.not- merge`. REPOSITORY rHG Mercurial 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 @@ -9,18 +9,34 @@ from . import revsetlang, 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 @@ -950,6 +950,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 Cc: mercurial-devel _______________________________________________ Mercurial-devel mailing list Mercurial-devel@mercurial-scm.org https://www.mercurial-scm.org/mailman/listinfo/mercurial-devel