revlog: convert an Abort message to bytes
Flagged by pytype.
Differential Revision: https://phab.mercurial-scm.org/D10234
setdiscovery: add a discovery.grow-sample.dynamic option
The current discovery dynamically adapt to complex situations. This
makes it quick and effective, but also harder so study the effects of
other improvements in such complex situation.
So we add a new option to control this too.
Differential Revision: https://phab.mercurial-scm.org/D10233
setdiscovery: rearrange code deciding if we will grow the sample
The new code is clearer and will make the next update simpler.
Differential Revision: https://phab.mercurial-scm.org/D10232
debugdiscovery: document relevant config option
These config option are here for people to experiment with it. So lets document
them in the command that is used for experimentation.
Differential Revision: https://phab.mercurial-scm.org/D10231
re2: feed unicode string to re2 module when necessary
My previous test were using the `pyre2` Python project, that wrap the Google RE2 library
in python as a `re2` module and accept bytes as input. However the `fb-re2`
Python project is also offering a wrapping of the Google RE2 library in python
as a `re2` module ans accept only unicode on python3. So we detect this
situation and convert thing to unicode when necessary.
Hooray…
We should consider using a rust wrapping for regexp handling. We needs regexps
in Rust anyway and this give use more control with less variants and more
sanity.
Differential Revision: https://phab.mercurial-scm.org/D10284
rebase: skip obsolete commits even if they have pruned successors
Issue 5782 reported that `hg rebase -r <obsolete commit with pruned
successor>` failed with an error saying that it would cause
divergence. Commit
b7e2cf114e85 (rebase: do not consider extincts for
divergence detection (
issue5782), 2018-02-09) fixed it by letting you
rebase the commit. However, that fix seems inconsistent with how we
handle `hg rebase -r <pruned commit>`. To me, it should make no
difference whether a commit is pruned itself or if it has (only)
pruned successors. This patch changes it so we treat these two kinds
of commits the same way. I let the message we print remain "note: not
rebasing <commit>, it has no successor" even though that last part is
not technically correct for commits with pruned successors. I doubt it
will confuse users.
Differential Revision: https://phab.mercurial-scm.org/D10240
tests: ask any chg instance to terminate before looking at sqlite dbs
There are spurious errors in CI where the database is still locked, so
force the daemon to quit to get deterministic behavior. Since the kill
command itself is racy, also sleep 2s to give the server time to wake up
and exit.
Differential Revision: https://phab.mercurial-scm.org/D10244
chg: kill trailing comma in SEE ALSO
Differential Revision: https://phab.mercurial-scm.org/D10243
bisect: use standard one-line commit summary
This makes bisect use the standardized support for one-line commit
summary I added a while back. That means that it will respect the
`command-templates.oneline-summary` config. If also means that the
default output now includes the first line of the commit message (see
test impact).
Differential Revision: https://phab.mercurial-scm.org/D10245
rhg: Add more conversions between error types
This allows using the `?` operator in more places, as the next commit does.
Differential Revision: https://phab.mercurial-scm.org/D10238