locarepo: remove the `pull` method (API)
All the logic of this function is in the `exchange.pull` function for some time.
We just stop calling `localrepo.pull` in `command.pull` to have access to more
information. Leaving `localrepo.pull` in place will let third-party extensions
wrap it but it would never be called by `hg pull` making the wrapping useless.
Therefore, the method is removed so that third-party code fail noisily and
get properly upgraded.
transplant: use exchange.pull
localrepo.pull is going away. See
4d52e6eb98ea for details.
convert-hg: use localrepo.pull
localrepo.pull is going away. See
4d52e6eb98ea for details.
fetch: use exchange.pull
localrepo.pull is going away. See
4d52e6eb98ea for details.
localrepo: use exchange.pull when cloning
localrepo.pull is going away. See
4d52e6eb98ea for details.
subrepo: use exchange.pull
localrepo.pull is going away, see
4d52e6eb98ea for details.
commands: directly use exchange.pull
localrepo.pull is going away. See explanations in
4d52e6eb98ea.
exchange: have `pull` return the pulloperation object
We mimic what was done for `push` for similar reason. We are about to drop
`localrepo.pull` (for consistency with dropping `localrepo.push` and we better
have an API as extensible as `push` is.
Find explanations about localrepo.push removal in
4d52e6eb98ea.
revset: introduce an abstractsmartset class
This class documents all methods required by a smartset. This makes it easier
for people to respect the API and ensure we fail loudly when something does
not. It will later also contain common default implementations for multiple
methods, making it easier to have smartset classes with minimal work.
revset: add a `__nonzero__` to baseset
We are about to add a base class for `baseset` with an abstract `__nonzero__`
method. So we need this method to be explicitly defined to avoid issues. The
built-in list object apparently does not have a `__nonzero__` and relies on
`__len__` for this purpose?
revset: drop isinstance(baseset) in spanset.__sub__
As baseset now has a fast __contains___ operator, this `baseset.set()` dance is no
longer needed. No regressions are visible in the benchmark.
revset: drop isinstance(baseset) in spanset.__and__
As baseset now has a fast __contains___ operator, this `baseset.set()` dance is no
longer needed. No regressions are visible in the benchmark.