Thu, 31 Dec 2020 14:28:00 +0530 engine: prevent a function call for each store file
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
Tue, 12 Jan 2021 18:36:22 +0100 rhg: use a release-mode executable in tests
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
Wed, 30 Dec 2020 00:14:28 +0100 rust: fix file folding map
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
Tue, 12 Jan 2021 22:43:55 +0100 test: replace a many occurence of `python` with `$PYTHON`
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Jan 2021 22:43:55 +0100] rev 46226
test: replace a many occurence of `python` with `$PYTHON` Otherwise this can use the wrong python version, or worse, not find any python at all. Differential Revision: https://phab.mercurial-scm.org/D9730
Tue, 12 Jan 2021 17:32:08 -0800 tests: make test-subrepo-git.t compatible with git's master->main rename
Martin von Zweigbergk <martinvonz@google.com> [Tue, 12 Jan 2021 17:32:08 -0800] rev 46225
tests: make test-subrepo-git.t compatible with git's master->main rename Git is about to change the default branch from "master" to "main". Recent versions has started warning about that, which makes tests fail. I assume the tests would fail in a different way once the default has changed. To make us compatible with that name change, let's set configure the default to be "master". That value makes the tests still work on older Git version (those where the default branch name is not configurable). Differential Revision: https://phab.mercurial-scm.org/D9746
Tue, 12 Jan 2021 14:45:32 -0800 revlog: use size_t for nodetree capacity
Jun Wu <quark@fb.com> [Tue, 12 Jan 2021 14:45:32 -0800] rev 46224
revlog: use size_t for nodetree capacity This allows handling revlog containing more than 33554432 (INT_MAX / sizeof(nodetreenode)) revisions on x64 platforms. Differential Revision: https://phab.mercurial-scm.org/D9745
Fri, 08 Jan 2021 22:38:33 +0530 upgrade: demonstrate that a no-op upgrade still performs everything
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 08 Jan 2021 22:38:33 +0530] rev 46223
upgrade: demonstrate that a no-op upgrade still performs everything An upgrade operation which is not adding or removing anything should ideally error out. However, it does the whole cloning and everything. Next patch will fix it. Differential Revision: https://phab.mercurial-scm.org/D9694
Thu, 31 Dec 2020 19:42:10 +0530 upgrade: migrated -> upgraded in ui messages
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 31 Dec 2020 19:42:10 +0530] rev 46222
upgrade: migrated -> upgraded in ui messages Differential Revision: https://phab.mercurial-scm.org/D9676
Thu, 31 Dec 2020 19:24:23 +0530 upgrade: remove unnecessary `is None` check
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 31 Dec 2020 19:24:23 +0530] rev 46221
upgrade: remove unnecessary `is None` check `upgrade_engine.upgrade()` always return the `backuppath` value and there are not early returns. Hence I don't see how `backuppath` can be None. Adding extra unncessary safe checks hides unknown bugs. Hence removing it. Differential Revision: https://phab.mercurial-scm.org/D9675
Thu, 31 Dec 2020 14:45:16 +0530 engine: refactor code to replace stores in separate function
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 31 Dec 2020 14:45:16 +0530] rev 46220
engine: refactor code to replace stores in separate function In not all upgrades, we need to change the whole store. For example, when upgrading repository to share-safe mode, we don't touch revlogs at all hence store cloning and copying is not required. The store replacing code needs to be made aware about what all has changed and hence only copy/rename those things. To kickstart that, this patch moves existing logic into a separate function. Differential Revision: https://phab.mercurial-scm.org/D9674
Thu, 31 Dec 2020 14:10:25 +0530 engine: make hook point for extension a public function
Pulkit Goyal <7895pulkit@gmail.com> [Thu, 31 Dec 2020 14:10:25 +0530] rev 46219
engine: make hook point for extension a public function Well there are no private public functions in Python, but we generally treat functions and variables starting with `_` as private ones. A function which needs to be overrided in extension should be a public one. Differential Revision: https://phab.mercurial-scm.org/D9672
Wed, 30 Dec 2020 16:39:35 +0530 engine: prevent multiple checking of re-delta-multibase
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 30 Dec 2020 16:39:35 +0530] rev 46218
engine: prevent multiple checking of re-delta-multibase The _perform_clone function is called for each revlog cloned, hence we should prevent this function call overhead. Differential Revision: https://phab.mercurial-scm.org/D9669
Wed, 30 Dec 2020 16:33:49 +0530 engine: pass upgrade operation inside `_perform_clone()`
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 30 Dec 2020 16:33:49 +0530] rev 46217
engine: pass upgrade operation inside `_perform_clone()` Same as previous patch. Differential Revision: https://phab.mercurial-scm.org/D9668
Wed, 30 Dec 2020 16:29:33 +0530 engine: pass upgrade operation inside _clonerevlogs()
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 30 Dec 2020 16:29:33 +0530] rev 46216
engine: pass upgrade operation inside _clonerevlogs() Better to pass the operation instead of passing three of it's members (one of the them is a function call) separately. This will also be useful in future when we will like to control which things are upgraded. Differential Revision: https://phab.mercurial-scm.org/D9667
Wed, 30 Dec 2020 16:20:25 +0530 actions: store deltareuse mode of whole operation in UpgradeOperation
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 30 Dec 2020 16:20:25 +0530] rev 46215
actions: store deltareuse mode of whole operation in UpgradeOperation UpgradeOperation should provide easy access to all the things related to the current operation. Clients should not need to compute them. Differential Revision: https://phab.mercurial-scm.org/D9666
Wed, 30 Dec 2020 16:11:24 +0530 engine: refactor how total dstsize is calculated
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 30 Dec 2020 16:11:24 +0530] rev 46214
engine: refactor how total dstsize is calculated Instead of increasing it with each revlog, we just get the sum of total destination changelog, manifest and filelogs sizes. Differential Revision: https://phab.mercurial-scm.org/D9665
Wed, 16 Dec 2020 14:00:41 +0530 upgrade: introduce post upgrade and downgrade message for improvements
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 16 Dec 2020 14:00:41 +0530] rev 46213
upgrade: introduce post upgrade and downgrade message for improvements For certain imporvements, we will like to show a message after the operation completed. This patch introduces that functionality. Right now it's only used by share-safe feature. Differential Revision: https://phab.mercurial-scm.org/D9619
Wed, 16 Dec 2020 15:04:17 +0530 actions: introduce function to calculate downgrades
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 16 Dec 2020 15:04:17 +0530] rev 46212
actions: introduce function to calculate downgrades An upgrade operation can also downgrade/remove some format variants. Before this patch there was no clean way to find out all such variants which will be removed. This patch adds a function for that. It will be used in next patch. Differential Revision: https://phab.mercurial-scm.org/D9618
Wed, 16 Dec 2020 14:55:27 +0530 debugupgraderepo: minor documentation fix
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 16 Dec 2020 14:55:27 +0530] rev 46211
debugupgraderepo: minor documentation fix When we specify `--no-changelog --no-manifest --no-filelog` we skip all revlog optimization instead of all filelog optimization. Also while I was here, for consistency, I did `optimisation` -> `optimization` to make it consistent with rest of occurrences. Note: I am not native speaker and I only changed it because of consistency. I don't know which one is correct. Differential Revision: https://phab.mercurial-scm.org/D9617
Wed, 16 Dec 2020 14:16:10 +0530 upgrade: rename actions to upgrade_actions
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 16 Dec 2020 14:16:10 +0530] rev 46210
upgrade: rename actions to upgrade_actions The `actions` were a list of optimizations and format upgrades which will be upgraded. This does not include things which will be downgraded. Let's rename the variable for clarity. It now makes obvious that we don't have any concrete information on what things are downgraded. Differential Revision: https://phab.mercurial-scm.org/D9616
Wed, 16 Dec 2020 14:06:24 +0530 upgrade: move optimization addition to determineactions()
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 16 Dec 2020 14:06:24 +0530] rev 46209
upgrade: move optimization addition to determineactions() The documentation of `determineactions()` mention that it is given a list returned from `findoptimizations()` however it was not true before this patch. The code extending actions with optimizations also mentioned about it that this should be in determineactions. So let's do what comments at couple of places say. Differential Revision: https://phab.mercurial-scm.org/D9615
Wed, 16 Dec 2020 12:39:15 +0530 upgrade: drop support for old style optimization names
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 16 Dec 2020 12:39:15 +0530] rev 46208
upgrade: drop support for old style optimization names Old style optimization names like `redeltaparent` were converted into `re-delta-parent` more than two years ago. The old names were kept around for sometime because of BC reasons. Refer 5608b5a6c3231c4ec771171cc3079142c7672be6. The commit states the map is there for a while and we can drop them as the underlying command is a debug command. Differential Revision: https://phab.mercurial-scm.org/D9614
Mon, 14 Dec 2020 16:15:01 +0530 upgrade: add a missing space in status message
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 14 Dec 2020 16:15:01 +0530] rev 46207
upgrade: add a missing space in status message Found while reading the code to refactor. Differential Revision: https://phab.mercurial-scm.org/D9583
Wed, 30 Dec 2020 14:56:34 +0530 actions: rename DEFICIENCY constant to FORMAT_VARIANT
Pulkit Goyal <7895pulkit@gmail.com> [Wed, 30 Dec 2020 14:56:34 +0530] rev 46206
actions: rename DEFICIENCY constant to FORMAT_VARIANT It was not obvious what does deficieny means and every format change can't be a deficiency. There are some format changes like compression levels, share-safe which can't be understood at deficiencies. This patch renames the constant to make things clearer. Differential Revision: https://phab.mercurial-scm.org/D9664
Mon, 14 Dec 2020 16:03:15 +0530 upgrade: rename finddeficiences() to find_format_upgrades()
Pulkit Goyal <7895pulkit@gmail.com> [Mon, 14 Dec 2020 16:03:15 +0530] rev 46205
upgrade: rename finddeficiences() to find_format_upgrades() It was not obvious what does deficieny means and every format upgrade can't be a deficiency. There are some format upgrades like compression levels, share-safe which can't be understood at deficiencies. A change can be an upgrade or downgrade, however this `finddeficiences()` only used to find upgrades. This patch renames the function and related variables to make things more clearer. The ui message also got improved which is a good thing. Next patch will rename deficiency in general across the upgrade code. Differential Revision: https://phab.mercurial-scm.org/D9582
Sat, 02 Jan 2021 01:48:12 -0500 beautifygraph: change the current commit symbol
msuozzo@google.com [Sat, 02 Jan 2021 01:48:12 -0500] rev 46204
beautifygraph: change the current commit symbol The existing "circle with vertical fill" character renders as full width in many terminals making the beautified symbols have uneven size. Additionally, the proposed "fisheye" character is the logic 'active' version of the current merge symbol, "bullseye." Differential Revision: https://phab.mercurial-scm.org/D9678
Mon, 11 Jan 2021 14:10:31 -0500 merge with stable
Augie Fackler <augie@google.com> [Mon, 11 Jan 2021 14:10:31 -0500] rev 46203
merge with stable
Mon, 28 Dec 2020 01:21:58 +0100 statichttprepo: explicitly convert error message to str (issue6247)
Joerg Sonnenberger <joerg@bec.de> [Mon, 28 Dec 2020 01:21:58 +0100] rev 46202
statichttprepo: explicitly convert error message to str (issue6247) For Python 2.7, the implicit conversion of the HTTPError instance to str was good enough. For Python 3.x, this fails later when hitting the str to bytes conversion logic. Differential Revision: https://phab.mercurial-scm.org/D9661
Mon, 07 Dec 2020 22:27:43 +0100 debugsetparents: add various warning in the help message
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 07 Dec 2020 22:27:43 +0100] rev 46201
debugsetparents: add various warning in the help message I am tired to see people shooting themself in the foot with this. So lets add more warning. At that point we should probably rename it or add extra confirmation flag. This is a debug command anyway we can break BC on it. Differential Revision: https://phab.mercurial-scm.org/D9534
Mon, 28 Dec 2020 03:18:16 +0100 largefiles: redo heads interception
Joerg Sonnenberger <joerg@bec.de> [Mon, 28 Dec 2020 03:18:16 +0100] rev 46200
largefiles: redo heads interception The largefiles extension replaces the "heads" wire command and tries to redirect all uses towards the custom "lheads" wire command. As seen in issue6384, this doesn't currently work for ssh. Instead of hooking into the _callstream interface, properly register the command for the peer instance and monkeypatch the executor to do the redirection. This works transparently for both all kinds of peers and both for the batch and non-batch case. Differential Revision: https://phab.mercurial-scm.org/D9663
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -30 +30 +50 +100 +300 +1000 +3000 tip