Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 13 Apr 2021 12:28:44 +0200] rev 46910
urlutil: add a `get_pull_paths` to perform the pull destination logic
As is this changeset does not change anything. However having an official empty
point will help unifying the logic and encapsulate the details and update the
logic to support path definition pointing to multiple other path.
Differential Revision: https://phab.mercurial-scm.org/D10378
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 12 Apr 2021 22:22:56 +0200] rev 46909
urlutil: add a `get_push_paths` to perform the push destination logic
As is this changeset does not change anything. However having an official empty
point will help unifying the logic and encapsulate the details and update the
logic to support path definition pointing to multiple other path.
Differential Revision: https://phab.mercurial-scm.org/D10377
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 12 Apr 2021 06:34:54 +0200] rev 46908
urlutil: extract `parseurl` from `hg` into the new module
The new module is well fitting for this new code. And this will be useful to
make the gathered code collaborate more later.
Differential Revision: https://phab.mercurial-scm.org/D10375
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 12 Apr 2021 03:01:04 +0200] rev 46907
urlutil: extract `url` related code from `util` into the new module
The new module is well fitting for this new code. And this will be useful to
make the gathered code collaborate more later.
Differential Revision: https://phab.mercurial-scm.org/D10374
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 11 Apr 2021 23:54:35 +0200] rev 46906
urlutil: extract `path` related code into a new module
They are a lot of code related to url and path handling scattering into various
large module. To consolidate the code before doing more change (for defining
"multi-path"), we gather it together.
Differential Revision: https://phab.mercurial-scm.org/D10373
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 10 Apr 2021 15:30:32 +0200] rev 46905
help: document the `path://` url scheme
If we want people to use it, we need to document it.
Differential Revision: https://phab.mercurial-scm.org/D10372
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 10 Apr 2021 15:28:10 +0200] rev 46904
help: point to `hg help urls` in `hg help config.paths`
This seems useful to point at what people can put as value for these config.
Differential Revision: https://phab.mercurial-scm.org/D10371
Matt Harbison <matt_harbison@yahoo.com> [Mon, 12 Apr 2021 22:42:47 -0400] rev 46903
merge with stable
Charles Chamberlain <cchamberlain@janestreet.com> [Fri, 09 Apr 2021 17:41:48 -0400] rev 46902
narrow: add capabilities for local repos, not just remote peers
This fixes the bug where running `hg clone --narrow ./local-repo`
fails with
abort: server does not support narrow clones
even when the server has narrow enabled.
Differential Revision: https://phab.mercurial-scm.org/D10357
Matt Harbison <matt_harbison@yahoo.com> [Thu, 25 Mar 2021 22:29:41 -0400] rev 46901
typing: make minor adjustments to mercurial/util.py to pass pytype checking
I'm assuming the wrong-arg-count is a pytype bug, because this code is used by
the config object. Avoiding initializing `_lrucachenode` node points to None
eliminates a few `is not None` assertions, but apparently not all of them. I
can't figure out why it gets confused over the state where these new assertions
are.
Differential Revision: https://phab.mercurial-scm.org/D10276
Matt Harbison <matt_harbison@yahoo.com> [Thu, 25 Mar 2021 20:22:00 -0400] rev 46900
util: fix the signature for the pypy override of sortdict.update()
PyCharm flagged this as not matching the base class signature. Not sure if
there was anything supplying these extra arguments though.
Differential Revision: https://phab.mercurial-scm.org/D10275
Matt Harbison <matt_harbison@yahoo.com> [Thu, 25 Mar 2021 18:59:14 -0400] rev 46899
typing: add type hints to mercurial/error.py
The only slightly unusual things here are that `location` is passed to
`ParseError` and both bytes and an int (so this accepts both), and the message
passed `ProgrammingError` is immediately converted to str. Therefore it is
typed as `AnyStr`, because there are a couple of instances that are already
passed as str.
There are a couple of places where bytes are being passed to builtin exceptions
that might need to be converted to str.
Differential Revision: https://phab.mercurial-scm.org/D10274