Mercurial > public > mercurial-scm > hg-stable
view mercurial/stack.py @ 42962:763028fc6a69
stack: use repo.revs() instead of revsetlang.formatspec() + scmutil.revrange()
Using scmutil.revrange() it's possible to use multiple revsets at the same
time, but we're not using that functionality in stack.
I thought maybe that function could be used to make stack definition
customizable (by combining various parts into one set), but scmutil.revrange()
gives the union of all provided revsets, which is not very useful in stack's
case (we want "and" between parts, not "or").
author | Anton Shestakov <av6@dwimlabs.net> |
---|---|
date | Sun, 22 Sep 2019 14:33:56 +0700 |
parents | 77c52ce50e6a |
children | 57875cf423c9 |
line wrap: on
line source
# 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 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. """ if rev is None: rev = '.' revspec = 'only(%s) and not public() and not ::merge()' revisions = repo.revs(revspec, rev) revisions.sort() return revisions