Pulkit Goyal <7895pulkit@gmail.com> [Wed, 06 Jan 2021 18:31:16 +0530] rev 46236
sharesafe: add functionality to automatically downgrade shares
Reasoning is same as previous patch which adds automatic upgrade support.
Downgrade is required as if automatic upgrade is enabled, all shares upgrade and
then source repository downgrades, shares won't work. We need to downgrade them.
Differential Revision: https://phab.mercurial-scm.org/D9680
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 06 Jan 2021 16:18:06 +0530] rev 46235
sharesafe: introduce functionality to automatically upgrade shares
In past few months, we have developed a `share-safe` mode for sharing repository
in which share source requirements and config values are shared with the shares.
To get it rolling, an important task is to get these shares automatically
upgraded. We are focusing on an installation where shares are created by scripts
and test jobs. It will be difficult to manually upgrade these and we need some
functionality to do so automatically.
This patch introduces a config option to deal with it. If all of the following
conditions are met, we upgrade the share repository automatically:
* If the config option is enabled
* Share source repository is share-safe enabled
* Share is not share-safe enabled
* Any command is run in the share
Upgrading the share is pretty easy as it involves only editing the requirements
file.
Differential Revision: https://phab.mercurial-scm.org/D9679
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 06 Jan 2021 16:01:19 +0530] rev 46234
localrepo: move storevfs calculation out of if statement
In next patch, we will need this variable in else statement too. So, let's take
it out.
Differential Revision: https://phab.mercurial-scm.org/D9681
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Mon, 11 Jan 2021 13:48:13 +0100] rev 46233
setup: don't import distutils prior to checking FORCE_SETUPTOOLS
I've seen warnings about importing distutils before setuptools,
although I can't reproduce them at the moment.
Differential Revision: https://phab.mercurial-scm.org/D9722
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 13 Jan 2021 15:42:15 +0530] rev 46232
largefiles: remove unused imports
This fixes test-check-pyflakes.t
Differential Revision: https://phab.mercurial-scm.org/D9747
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 08 Jan 2021 23:08:39 +0530] rev 46231
upgrade: don't perform anything if nothing to do
Before this patch, upgrade will process everything, re-clone all revlogs, write
requirements file again even there is no change to be made.
This patch makes it exit earlier.
Differential Revision: https://phab.mercurial-scm.org/D9695
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 08 Jan 2021 23:06:38 +0530] rev 46230
downgrade: if a compression is removed, consider that too
For compression format variant, the result of `fromrepo()` and `fromconfig()` is
not a boolean and we have to actually equate those to find change.
Differential Revision: https://phab.mercurial-scm.org/D9693
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 31 Dec 2020 14:28:00 +0530] rev 46229
engine: prevent a function call for each store file
Python function calls are not cheap. Instead of calling the function once for
each file in store, we use a dedicated function which filters and yields the
required files.
Differential Revision: https://phab.mercurial-scm.org/D9673
Simon Sapin <simon.sapin@octobus.net> [Tue, 12 Jan 2021 18:36:22 +0100] rev 46228
rhg: use a release-mode executable in tests
This allows the rhg build for test-rhg.t to share compiled dependencies
such as hg-core with the hg-cpython build for other tests.
For context, my wrapper script for the typical edit-compile-test
cycle now looks like this:
(cd rust && cargo +nightly-2020-10-04 fmt)
(cd rust && cargo build --release -p rhg)
make --silent local PURE=--rust
python test/run-tests.py --local "$@"
Differential Revision: https://phab.mercurial-scm.org/D9728
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Wed, 30 Dec 2020 00:14:28 +0100] rev 46227
rust: fix file folding map
The file folding map, frequently used on macOS, had two issues:
* the means for converting it to Python didn't work
* a minor typo when copying the python code, where `!=` became `==`
With this, the rust code passes all tests on macOS.
Test Plan:
I'm currently doing a full test run on a case-insensitive file system. If it passes, perhaps we can change the platform check from an error to a warning?
Differential Revision: https://phab.mercurial-scm.org/D9671