Thu, 07 Jan 2021 11:22:21 -0800 shelve: move method for writing .shelve to new shelf class
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Jan 2021 11:22:21 -0800] rev 46274
shelve: move method for writing .shelve to new shelf class Differential Revision: https://phab.mercurial-scm.org/D9701
Thu, 07 Jan 2021 11:07:21 -0800 shelve: introduce class representing a shelf
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Jan 2021 11:07:21 -0800] rev 46273
shelve: introduce class representing a shelf I'm about to make phase-based shelve not write `.hg` and `.patch` files. Having a class that represents a single shelf, regardless of which files it uses will help. I'm starting small with just a `.exists()` function. I plan to eventually remove the `shelvedfile` class once all functionality has been moved to the new class. By the way, I know that things you shelve are not typically themselves shelves. I still picked `Shelf` for the class because it's short (compared to e.g. `ShelvedChange`). Differential Revision: https://phab.mercurial-scm.org/D9700
Thu, 07 Jan 2021 12:26:32 -0800 shelve: raise more specific errors
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Jan 2021 12:26:32 -0800] rev 46272
shelve: raise more specific errors Differential Revision: https://phab.mercurial-scm.org/D9699
Thu, 07 Jan 2021 12:58:43 -0800 shelve: trust caller of shelvedfile.opener() to check that the file exists
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Jan 2021 12:58:43 -0800] rev 46271
shelve: trust caller of shelvedfile.opener() to check that the file exists The only place we call `shelvedfile.opener()` is when we're about to apply a bundle. The file should always exist. If it doesn't, the `.hg/` directory is corrupt and we don't provide any guarantees about supporting corrupt repos (besides, telling the user that the shelve doesn't exist when `hg shelve --list` lists it is not very helpful). Differential Revision: https://phab.mercurial-scm.org/D9698
Thu, 07 Jan 2021 12:22:39 -0800 shelve: rewrite check for unknown shelf to delete
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Jan 2021 12:22:39 -0800] rev 46270
shelve: rewrite check for unknown shelf to delete The code would try to delete the shelf's .patch file and if that raised an exception, it would convert it to an `error.Abort`. This patch rewrites it so the check is done upfront. I find it easier to read that way. It's now clear enough that I removed the comment explaining it as well. As Joerg pointed out during review, another differences is that the old code would move a `.hg` file without its `.patch` friend to backup before it realized that the `.patch` file was missing. The new code will error out earlier and not move the `.hg` file, which seems like an improvement. That should only matter on corrupt `.hg/shelved/` directories, however. Differential Revision: https://phab.mercurial-scm.org/D9697
Thu, 07 Jan 2021 12:37:14 -0800 shelve: remove a bundlerepo method
Martin von Zweigbergk <martinvonz@google.com> [Thu, 07 Jan 2021 12:37:14 -0800] rev 46269
shelve: remove a bundlerepo method It was added in 43816070284e (shelve: add a bundlerepo method, 2014-10-10), but I haven't been able to find a place it was used. Differential Revision: https://phab.mercurial-scm.org/D9696
Fri, 08 Jan 2021 16:38:41 -0800 tests: add tests for corrupt .hg/shelved/ directory
Martin von Zweigbergk <martinvonz@google.com> [Fri, 08 Jan 2021 16:38:41 -0800] rev 46268
tests: add tests for corrupt .hg/shelved/ directory I don't care much how we behave in these cases, except that we should provide a way for the user to get out of the broken state. Differential Revision: https://phab.mercurial-scm.org/D9718
Wed, 13 Jan 2021 18:29:19 +0100 ui: add a "config_default" method
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 13 Jan 2021 18:29:19 +0100] rev 46267
ui: add a "config_default" method This allow code to access the expected value for a config. This is useful in the context of dynamic default value, and short term it will be useful to write dynamically "correct" code. Differential Revision: https://phab.mercurial-scm.org/D9759
Thu, 14 Jan 2021 11:46:30 +0100 test: split tests/test-merge-combination.t into multiple parts
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 14 Jan 2021 11:46:30 +0100] rev 46266
test: split tests/test-merge-combination.t into multiple parts That test is quite slow, lets split it in smaller bits. Differential Revision: https://phab.mercurial-scm.org/D9768
Thu, 14 Jan 2021 11:33:09 +0100 test: extract the `genmerges` out of test-merge-combination.t
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 14 Jan 2021 11:33:09 +0100] rev 46265
test: extract the `genmerges` out of test-merge-combination.t This open the way to splitting this slow test in multiple ones. Differential Revision: https://phab.mercurial-scm.org/D9767
Fri, 15 Jan 2021 14:05:32 +0100 hghave: clarify `sqlite` requirements
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 15 Jan 2021 14:05:32 +0100] rev 46264
hghave: clarify `sqlite` requirements We need more than the python module, we also need the sqlite3 command line. Differential Revision: https://phab.mercurial-scm.org/D9787
Fri, 15 Jan 2021 01:21:58 +0100 localrepo: fix comment typo
Joerg Sonnenberger <joerg@bec.de> [Fri, 15 Jan 2021 01:21:58 +0100] rev 46263
localrepo: fix comment typo Differential Revision: https://phab.mercurial-scm.org/D9782
Thu, 14 Jan 2021 11:53:55 -0800 error: use detailed exit code 10 for command errors
Martin von Zweigbergk <martinvonz@google.com> [Thu, 14 Jan 2021 11:53:55 -0800] rev 46262
error: use detailed exit code 10 for command errors Command errors (unknown or ambiguous commands, or bad command arguments or options) are handled in the `dispatch` module. Most other errors are handled in the `scmutil` module. This patch therefore has to duplicate a little bit of code from the `scmutil` module. It's just a few lines, however, so it seems fine to me. It's a pretty common category of errors, so it's important to have them respect `ui.detailed-exit-code`. Differential Revision: https://phab.mercurial-scm.org/D9777
Wed, 13 Jan 2021 22:37:21 -0800 errors: raise InputError when non-existent help section requested
Martin von Zweigbergk <martinvonz@google.com> [Wed, 13 Jan 2021 22:37:21 -0800] rev 46261
errors: raise InputError when non-existent help section requested Differential Revision: https://phab.mercurial-scm.org/D9776
Fri, 15 Jan 2021 12:56:25 -0500 revlog: migrate from PyEval_CallObject to PyObject_Call
Augie Fackler <augie@google.com> [Fri, 15 Jan 2021 12:56:25 -0500] rev 46260
revlog: migrate from PyEval_CallObject to PyObject_Call The former was deprecated in 3.9.0. Differential Revision: https://phab.mercurial-scm.org/D9791
Fri, 15 Jan 2021 12:52:52 -0500 fuzz: fix Makefile default PYTHON_CONFIG_FLAGS to be modern
Augie Fackler <augie@google.com> [Fri, 15 Jan 2021 12:52:52 -0500] rev 46259
fuzz: fix Makefile default PYTHON_CONFIG_FLAGS to be modern This is actually what we already do on oss-fuzz, so it's more correct as tests go. Differential Revision: https://phab.mercurial-scm.org/D9790
Thu, 14 Jan 2021 06:52:36 +0100 tests: wider work around matching in test-narrow-shallow.t
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 14 Jan 2021 06:52:36 +0100] rev 46258
tests: wider work around matching in test-narrow-shallow.t Since issue6150 is still not fixed, we have to accommodate a larger array of possible results. Otherwise we get frequent flakiness of local and CI runs. Differential Revision: https://phab.mercurial-scm.org/D9766
Wed, 13 Jan 2021 15:44:24 -0500 fuzz: try and ensure fuzzer tests run against the right python-config
Augie Fackler <augie@google.com> [Wed, 13 Jan 2021 15:44:24 -0500] rev 46257
fuzz: try and ensure fuzzer tests run against the right python-config Also only under python 3. Differential Revision: https://phab.mercurial-scm.org/D9752
Fri, 08 Jan 2021 16:25:18 +0100 contrib: remove testing for `dirstate-tree` Rust feature
Raphaël Gomès <rgomes@octobus.net> [Fri, 08 Jan 2021 16:25:18 +0100] rev 46256
contrib: remove testing for `dirstate-tree` Rust feature This feature will be replaced in a few months, and served more as a proof-of-concept. Keeping it in CI when no one is using it anymore is just wasteful. Differential Revision: https://phab.mercurial-scm.org/D9716
Wed, 13 Jan 2021 17:21:51 +0100 perf: don't turn byte to string when formatting perfbranchmap
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 13 Jan 2021 17:21:51 +0100] rev 46255
perf: don't turn byte to string when formatting perfbranchmap I am not sure why this `str` all is there is the first place. Differential Revision: https://phab.mercurial-scm.org/D9751
Fri, 18 Dec 2020 14:45:28 +0100 branchmap: avoid ancestor computations in absence of non-continous branches
Joerg Sonnenberger <joerg@bec.de> [Fri, 18 Dec 2020 14:45:28 +0100] rev 46254
branchmap: avoid ancestor computations in absence of non-continous branches The branchhead computation is one of the more heavy operations for bigger repositories as it has to scan all changesets and potentially involves the expensive computation of the ancestor sets. Redo the computation to handle the common cases directly and use tighter conditions for when the ancestor scan is necessary. Most importantly, avoid it completely if the non-continous branches are processed in one update as seen in the initial computation after a clone. For the Mercurial repository, it gives a small 2-3% performance boost. For the NetBSD test repository, it cuts the time in half. Differential Revision: https://phab.mercurial-scm.org/D9631
Tue, 12 Jan 2021 19:49:18 +0100 persistent-nodemap: also list related file as part of the store
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Jan 2021 19:49:18 +0100] rev 46253
persistent-nodemap: also list related file as part of the store This make sure they are will be selected during upgrade, and copy based clone. Differential Revision: https://phab.mercurial-scm.org/D9749
Wed, 13 Jan 2021 12:50:47 +0100 upgrade: explicitly test for revlog index
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 13 Jan 2021 12:50:47 +0100] rev 46252
upgrade: explicitly test for revlog index We do not want to exclude `.d` we want to only include `.i`. We are about to add more extension type (for the persistent nodemap: `.n`, `.nd`) so lets make the list explicit instead. Differential Revision: https://phab.mercurial-scm.org/D9748
Tue, 12 Jan 2021 19:47:34 +0100 persistent-nodemap: highlight that node is not sent when streaming
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Jan 2021 19:47:34 +0100] rev 46251
persistent-nodemap: highlight that node is not sent when streaming We have a local work-around, however having that data sent in the first place would be better. So we start with a test that monitor what is sent, and notice they are not. Differential Revision: https://phab.mercurial-scm.org/D9736
Tue, 12 Jan 2021 18:13:55 +0100 persistent-nodemap: test it (does not) exist after a stream clone
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Jan 2021 18:13:55 +0100] rev 46250
persistent-nodemap: test it (does not) exist after a stream clone This is currently buggy. We add a test before fixing the bug. Differential Revision: https://phab.mercurial-scm.org/D9734
Tue, 12 Jan 2021 18:19:17 +0100 persistent-nodemap: test it (does not) exist after a local clone
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Jan 2021 18:19:17 +0100] rev 46249
persistent-nodemap: test it (does not) exist after a local clone This is currently buggy. We add a test before fixing the bug. Differential Revision: https://phab.mercurial-scm.org/D9733
Tue, 12 Jan 2021 18:19:01 +0100 persistent-nodemap: test that is it present after a clone
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Jan 2021 18:19:01 +0100] rev 46248
persistent-nodemap: test that is it present after a clone The persistent nodemap is actually missing after local and stream clone. We start by adding a test for the case that works so that we can compare output after the fix. Differential Revision: https://phab.mercurial-scm.org/D9732
Tue, 12 Jan 2021 23:27:24 +0100 narrow: overwrite readfast in excludeddirmanifestctx
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 12 Jan 2021 23:27:24 +0100] rev 46247
narrow: overwrite readfast in excludeddirmanifestctx The excludeddirmanifestctx does not have underlying storage (because it is excluded) so the implementation of the `readfast` trying to access it crash. This was reveled while running some cache warning code on narrow repositories. That code will be introduced further down in the series. Differential Revision: https://phab.mercurial-scm.org/D9731
Mon, 11 Jan 2021 17:46:55 -0800 patch: handle filenames with trailing spaces
Kyle Lippincott <spectral@google.com> [Mon, 11 Jan 2021 17:46:55 -0800] rev 46246
patch: handle filenames with trailing spaces I have no idea if this is *actually* supported by the patch file format, but at least when reading from a patch file created by running `hg shelve`, it is written out such that there's a trailing space after the second (`b`) filename. When we read the patch file, we remove the space before parsing the filenames, so it doesn't end up matching the other sources of what files are in the shelve. We observed this internally due to a wrapper around unshelve that called into patch.changedfiles, but `hg patch` is able to reproduce the issue as well, so I've included both tests. Differential Revision: https://phab.mercurial-scm.org/D9729
Tue, 29 Dec 2020 23:15:26 +0100 rust: fix testing with $TMPDIR ≠ /tmp
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Tue, 29 Dec 2020 23:15:26 +0100] rev 46245
rust: fix testing with $TMPDIR ≠ /tmp Differential Revision: https://phab.mercurial-scm.org/D9670
Mon, 11 Jan 2021 15:16:36 +0100 ci: avoid a global before_script definition
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Mon, 11 Jan 2021 15:16:36 +0100] rev 46244
ci: avoid a global before_script definition This removes the implicit assumption that all jobs are test runs. Differential Revision: https://phab.mercurial-scm.org/D9723
Mon, 21 Dec 2020 15:50:01 +0100 setup: when possible, build and bundle man pages
Dan Villiom Podlaski Christiansen <danchr@gmail.com> [Mon, 21 Dec 2020 15:50:01 +0100] rev 46243
setup: when possible, build and bundle man pages This makes it so the manual pages are built as part of the Python build, and includes them in any wheel generated. This should make Python wheels a much more useful and complete way of distributing Mercurial binaries. Differential Revision: https://phab.mercurial-scm.org/D9640
Tue, 08 Dec 2020 16:41:13 +0530 scmutil: improve documentation of writereporequirements()
Pulkit Goyal <7895pulkit@gmail.com> [Tue, 08 Dec 2020 16:41:13 +0530] rev 46242
scmutil: improve documentation of writereporequirements() This makes it easier to understand the difference between `writerequires()` and `writereporequirements()`. Differential Revision: https://phab.mercurial-scm.org/D9568
Fri, 20 Nov 2020 08:02:25 +0100 command: automatically create alias for command using '-' in names
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 20 Nov 2020 08:02:25 +0100] rev 46241
command: automatically create alias for command using '-' in names As discussed during the "5.6 Sprint" ignoring dash in command name open the way to using them more. We can now move existing command to more readable (dash using) names without breaking any compatibility. Differential Revision: https://phab.mercurial-scm.org/D9515
Mon, 28 Dec 2020 01:05:09 +0100 worker: POSIX only supports workers from main thread (issue6460)
Joerg Sonnenberger <joerg@bec.de> [Mon, 28 Dec 2020 01:05:09 +0100] rev 46240
worker: POSIX only supports workers from main thread (issue6460) The POSIX backend sets signal handlers for SIGINT (maybe avoidable) and SIGCHLD (necessary for waitpid). Python up to 3.9 only allow this from the main thread, so disable the worker feature otherwise. Differential Revision: https://phab.mercurial-scm.org/D9660
Fri, 08 Jan 2021 21:47:31 +0530 sharesafe: introduce config to disallow outdated shares if upgrade fails
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 08 Jan 2021 21:47:31 +0530] rev 46239
sharesafe: introduce config to disallow outdated shares if upgrade fails After this patch, we have config option to control all aspects of shares when share source is upgraded or downgraded. Differential Revision: https://phab.mercurial-scm.org/D9692
Fri, 08 Jan 2021 21:34:16 +0530 sharesafe: make warning about outdated share configurable
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 08 Jan 2021 21:34:16 +0530] rev 46238
sharesafe: make warning about outdated share configurable If the source repository upgrades to use sharesafe mode, we show a warning in shares. This patch makes that warning configurable and some might not want their users see this warning. Differential Revision: https://phab.mercurial-scm.org/D9691
Fri, 08 Jan 2021 18:07:33 +0530 debuglock: rename flag names to better clarity
Pulkit Goyal <7895pulkit@gmail.com> [Fri, 08 Jan 2021 18:07:33 +0530] rev 46237
debuglock: rename flag names to better clarity `--force-lock` sounds as if we are taking the lock however in reality it's the opposite. Differential Revision: https://phab.mercurial-scm.org/D9690
Wed, 06 Jan 2021 18:31:16 +0530 sharesafe: add functionality to automatically downgrade shares
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
Wed, 06 Jan 2021 16:18:06 +0530 sharesafe: introduce functionality to automatically upgrade shares
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
Wed, 06 Jan 2021 16:01:19 +0530 localrepo: move storevfs calculation out of if statement
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
Mon, 11 Jan 2021 13:48:13 +0100 setup: don't import distutils prior to checking FORCE_SETUPTOOLS
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
Wed, 13 Jan 2021 15:42:15 +0530 largefiles: remove unused imports
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
Fri, 08 Jan 2021 23:08:39 +0530 upgrade: don't perform anything if nothing to do
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
Fri, 08 Jan 2021 23:06:38 +0530 downgrade: if a compression is removed, consider that too
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
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
(0) -30000 -10000 -3000 -1000 -300 -100 -60 +60 +100 +300 +1000 +3000 tip