log: do not override other filtering and sorting options by --bookmark
This basically reimplements
0aa118f18d4b 'log: add bookmark option to
"hg log"'. Before, any other filtering options but --rev were ignored.
-G didn't work either since the ordering constraint wasn't enforced.
scmutil: extract function that builds revset expr to select bookmark branch
This is needed to process "log -B" option properly. "log" options have to
be translated to a revset expression, not to an evaluated set.
scmutil: document that bookmarkrevs() ignores non-head bookmark branch
"- ancestors(head() and not bookmark(%s))" excludes the bookmarked branch
itself if bookmark(%s) is not a head. I'm a bit surprised by this behavior
while writing "log -B" tests, so let's document it.
cext: add .pyi files for C extensions
I'm unsure if all the annotations are completely accurate. But having
these helps type checkers reason about our C extensions.
Differential Revision: https://phab.mercurial-scm.org/D9281
phabricator: allow local revisions to be specified with `phabupdate`
It's way easier and less error prone to specify a revset after importing a
series than to manually type in a series of Differentials.
Unlike most revision oriented commands, this requires the `--rev` option
explicitly because the existing `DREVSPEC` doesn't need to have the leading 'D',
and therefore the meaning is ambiguous. I wouldn't have a problem giving
precedence to the local revnum, but `phabread` and `phabimport` also use
DREVSPEC, and local revisions make no sense there. I would be fine with
modifying that definition to require the leading 'D', but I'm not sure how many
people are used to not specifying it.
Differential Revision: https://phab.mercurial-scm.org/D9356
copies: properly copies parent dictionary before updating it
This enforces the copy on write logic. Otherwise independant unrelated branches
could affected each other.
More testing of these case are coming, but I need that code landed to unlock
other performance work in parallel.
Differential Revision: https://phab.mercurial-scm.org/D9419
upgrade: display the list of processed revlog before proceeding
This help to make sure we don't wrongly skip some in the test and to make sure
the user is aware of the amount of processing they is signing up for.
Differential Revision: https://phab.mercurial-scm.org/D9469