- Feb 18, 2022
-
-
Raphaël Gomès authored
-
Raphaël Gomès authored
-
Raphaël Gomès authored
-
Raphaël Gomès authored
-
Raphaël Gomès authored
-
Raphaël Gomès authored
-
Raphaël Gomès authored
-
- Feb 17, 2022
-
-
Arseniy Alekseyev authored
Differential Revision: https://phab.mercurial-scm.org/D12202
-
Pierre-Yves David authored
The dual-write approach was mostly useless. As explained in the previous version of the help, the key had to be read twice before we could cache a value. However this "read twice" limitation actually also apply to any usage of the key. If some operation wants to rely of the "same value == same tracked set" property it would need to read the value before, and after running that operation (or at least, after, in all cases). So it cannot be sure the operation it did is "valid" until checking the key after the operation. As a resultat such operation can only be read-only or rollbackable. This reduce the utility of the "same value == same tracked set" a lot. So it seems simpler to drop the double write and to update the documentation to highlight that this file does not garantee race-free operation. As a result the "key" is demoted to a "hint". Documentation is updated accordingly. Differential Revision: https://phab.mercurial-scm.org/D12201
-
Pierre-Yves David authored
This is more consistent with the other options. Differential Revision: https://phab.mercurial-scm.org/D12200
-
Pierre-Yves David authored
We renamed the config option but we forgot to change the actual value… Differential Revision: https://phab.mercurial-scm.org/D12199
-
Pierre-Yves David authored
This seems rather important if we want people to start using it. Differential Revision: https://phab.mercurial-scm.org/D12198
-
- Jan 31, 2022
-
-
Anton Shestakov authored
If a repo is accessed via static HTTP, then we obviously can't use os.stat() to just peek at the file size. Let's download the entire file to check its size. Yes, this feels wasteful, but: 1. If we're cloning or pulling a repo from a static HTTP server, we need the contents of the obsstore anyway. 2. Implementing statichttpvfs.stat() that uses HEAD will result in one more request to a static-only HTTP server, which is already slow. Also parsing a response to a HEAD request to construct os.stat_result is pretty hacky. There's also a question of the remote server properly supporting HEAD method and reporting at least file size. 3. Implementing statichttpvfs.stat() that uses GET is pretty much the same thing as we do here, except we can't even cache the response easily, unlike simply accessing obsstore._data, which is @propertycache'd. Importing statichttprepo locally to avoid circular import. See also: 4507bc001365 and commit message of f8f2ecdde4b5. Differential Revision: https://phab.mercurial-scm.org/D12195
-
- Aug 26, 2021
-
-
Gregory Szorc authored
This is a newer volume type. It offers a better baseline of performance by default and is ~10% cheaper. It doesn't offer burst credits. But its performance is guaranteed, unlike gp2, which had wonky performance behavior. Differential Revision: https://phab.mercurial-scm.org/D12132
-
- Aug 27, 2021
-
-
Gregory Szorc authored
This instance type is much, much faster than t3 and can perform tasks much quicker. Differential Revision: https://phab.mercurial-scm.org/D12131
-
- Feb 15, 2022
-
-
Martin von Zweigbergk authored
`_maketempfiles()` is very specialized for its current use. I hope to use it also when creating temporary files for input for tools that do partial conflict resolution. That'll be possible if the function is more generic. Instead of passing in two contexts (for "other" and "base") and an optional path (for "local"), let's pass a single list of files to make backups for. Even if we don't end up using for partial conflict resolution, this is still a simplification (but I do have a WIP patch for partial conflict resolution and it is able to benefit from this). Differential Revision: https://phab.mercurial-scm.org/D12193
-
Martin von Zweigbergk authored
The two callers of the local `maketempfrompath()` function used the returned file object in the same way. We can reduce duplication by moving that code into the function. Differential Revision: https://phab.mercurial-scm.org/D12192
-
Martin von Zweigbergk authored
Differential Revision: https://phab.mercurial-scm.org/D12191
-
Martin von Zweigbergk authored
The place where the `.orig` extension is removed in `_maketempfiles()` doesn't make it clear that it's the backup path, which is why we have a comment in the code explaining it. Let's instead move it out of the function and close to where we get it from `backup.path()`, so that becomes clear. Differential Revision: https://phab.mercurial-scm.org/D12190
-
Martin von Zweigbergk authored
The `localpath` argument is unused if `uselocalpath` is false, so we can use `None` as a sentinel value for the variable instead and remove extra `uselocalpath` argument. That's not much of a win, but it's a small step towards further improvements. Differential Revision: https://phab.mercurial-scm.org/D12189
-
- Feb 12, 2022
-
-
Martin von Zweigbergk authored
The `backup` path is now always absolute, so we don't need to join it with the working copy path. Differential Revision: https://phab.mercurial-scm.org/D12188
-
Martin von Zweigbergk authored
Before calling a merge tool, we create a backup of the local side of the merge. That file can be put in the working copy or in a temporary directory, depending on the user's config. When we're merging in memory, we don't want to write to the actual, on-disk working copy, so we write the file to the in-memory working copy instead. However, since we don't support external merge tools with in-memory merge, it makes no difference where the file is actually stored (and if we ever do add support for external merge tools, then the file clearly can't live in the in-memory working-copy object anyway). So, since it doesn't matter where the file is stored, we can simplify by always putting them in the system's temp directory. Differential Revision: https://phab.mercurial-scm.org/D12187
-
- Feb 16, 2022
-
-
Martin von Zweigbergk authored
I missed this in D12171. Differential Revision: https://phab.mercurial-scm.org/D12194
-
- Feb 15, 2022
-
-
Pierre-Yves David authored
This only affects the dirstate and is safe to upgrade in the share. Differential Revision: https://phab.mercurial-scm.org/D12197
-
Pierre-Yves David authored
This would work for a subset of action only. Our first target is dirstate-v2. Differential Revision: https://phab.mercurial-scm.org/D12196
-
Augie Fackler authored
This was showing up in an operation I was doing today, and I'd like to be able to get trace spans for it instead of just profiler samples. Differential Revision: https://phab.mercurial-scm.org/D12186
-
Augie Fackler authored
This was showing up in an operation I was doing today, and I'd like to be able to get trace spans for it instead of just profiler samples. Differential Revision: https://phab.mercurial-scm.org/D12185
-
- Feb 16, 2022
-
-
Martin von Zweigbergk authored
-
- Feb 12, 2022
-
-
Martin von Zweigbergk authored
The feature introduced in D2888 seems like a pure improvement to me. It makes the names' of temporary file easier to read. Let's have it always enabled. I also removed the config option for the path prefix because it doesn't seem useful. I asked Kyle (the author of the feature) about it and he couldn't think of a reason to keep it. I suspect it was just that we to have a config to turn it on/off while it was experimental, so it might as well be a configurable prefix then. Differential Revision: https://phab.mercurial-scm.org/D12171
-
- Feb 15, 2022
-
-
Pierre-Yves David authored
Special cases are not special enough, we align the option name on the other. The `version` value is undocumented for now as it can only have a single value. It is supported in the code to properly detect and abort if more value are introduced in the future value. Differential Revision: https://phab.mercurial-scm.org/D12184
-
- Nov 26, 2021
-
-
Raphaël Gomès authored
We use the `trace` level for the actual message because it can get really busy. Differential Revision: https://phab.mercurial-scm.org/D11814
-
- Feb 07, 2022
-
-
Euxane TRAN-GIRARD authored
This allows Python code to make use of the C implementation of the changelogv2 base operations when the C extensions are enabled. The `format_version` values are now shared between the C and Python sides, avoiding an additional translation for the selection of the format version to use. Differential Revision: https://phab.mercurial-scm.org/D12179
-
- Feb 14, 2022
-
-
Euxane TRAN-GIRARD authored
This introduces a C implementation of changelogv2 records packing and unpacking operations matching the pure Python counterpart, similarly to what we already have for revlogv1 and revlogv2. This is also necessary to access changelogv2 record fields from future Rust code without going through the Python part, which would annihilate any performance benefit. Differential Revision: https://phab.mercurial-scm.org/D12178
-
- Feb 15, 2022
-
-
Raphaël Gomès authored
Differential Revision: https://phab.mercurial-scm.org/D12183
-
- Feb 14, 2022
-
-
Raphaël Gomès authored
In 9ebc10ad4a04 I updated `rustfmt` without touching hghave, which means that the CI has been skipping the format test ever since. Thankfully, only one offending line exists in the code that's been introduced since. Differential Revision: https://phab.mercurial-scm.org/D12180
-
- Feb 11, 2022
-
-
Raphaël Gomès authored
Due to the naive approach to path relative-ness, some tree shapes like the one introduced in the associated test could result in the packer going into an endless loop which allocated new `Node` objects endlessly until the process was killed by Linux's OOM killer. Differential Revision: https://phab.mercurial-scm.org/D12170
-
- Feb 15, 2022
-
-
Mathias De Mare authored
Differential Revision: https://phab.mercurial-scm.org/D12182
-
- Feb 10, 2022
-
-
Euxane TRAN-GIRARD authored
This is less error-prone. Differential Revision: https://phab.mercurial-scm.org/D12177
-
- Feb 11, 2022
-
-
Pierre-Yves David authored
The node is not guaranteed to be at the same location all the time (e.g: changelog v2), so let's use the official existing API to get that value. Differential Revision: https://phab.mercurial-scm.org/D12176
-
- Jan 28, 2022
-
-
Euxane TRAN-GIRARD authored
This replaces the naive rank computation with a more efficient incremental method, avoiding computing the whole ancestor set when possible. Differential Revision: https://phab.mercurial-scm.org/D12143
-