Mercurial > hg
view mercurial/stack.py @ 50093:ce60c8d4ac87
typing: add type hints to argument checking functions in cmdutil
These might be surprising, since they can take strings instead of bytes. The
way `AnyStr` works is that it must be all bytes or all str for any given
invocation.
The wildcard here will be the `opts` that get passed in- if the type is unknown
and defaults to `Any`, there's no enforcement that the dict key type matches the
additional args. But a lot of uses should be using `**opts` from the command
method, which has a str key. The uses of these methods in this module are now
typed because their internals force a specific type, and it can't just be
inferred from the caller.
author | Matt Harbison <matt_harbison@yahoo.com> |
---|---|
date | Tue, 14 Feb 2023 12:40:59 -0500 |
parents | 6000f5b25c9b |
children | f4733654f144 |
line wrap: on
line source
# stack.py - Mercurial functions for stack definition # # Copyright Olivia Mackall <olivia@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. 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 = b'.' revspec = b'only(%s) and not public() and not ::merge()' revisions = repo.revs(revspec, rev) revisions.sort() return revisions