- Mar 24, 2022
-
-
Valentin Gatien-Baron authored
I don't really know how, but I ran into this error: $ hg clone --stream ssh://user@dummy/empty-repo local-empty-repo streaming all changes abort: unable to apply stream clone: unsupported format: [255] I think you need an empty list of requirements for this to happen, which is weird, but an obscure error like this is not exactly helpful either. Since this is the result of an encoding bug anyway, just fix it. Differential Revision: https://phab.mercurial-scm.org/D12402
-
- Mar 29, 2022
-
-
Yuya Nishihara authored
If I understand it, mctx.readfast() is unreliable here if p1/p2 .hgtags nodes differ, and tags on that branch would be randomly discarded depending on which parent were picked. The test case added by this patch would fail only on zstd-compressed repository. I didn't try hard to stabilize the failure case.
-
- Mar 28, 2022
-
-
Raphaël Gomès authored
This was forgotten about in the initial implementation and was revealed while adding the `dirstate-v2` variant of `test-issue660.t`. Neither the existing Python implementation nor the upcoming Rust implementation suffer from this bug since they respectively have `None` and `Option<T>` to represent the lack of information. Differential Revision: https://phab.mercurial-scm.org/D12414
-
- Mar 22, 2022
-
-
Jörg Sonnenberger authored
It is pullbundles.manifest and not pullbundle.manifest. Differential Revision: https://phab.mercurial-scm.org/D12391
-
- Mar 21, 2022
-
-
Martin von Zweigbergk authored
`hg unamend` can currently undo any kind of rewrite, as long as it has an obsmarker. However, that has quite unexpected results if you run it after e.g. `hg rebase` (expecting it to behave like a generic `hg undo` command), because it updates to the predecessor and leaves the old changes in the working copy. I think it's better to allow `hg unamend` only after `hg amend` (and after `hg unamend` because that's documented as being supported). Differential Revision: https://phab.mercurial-scm.org/D12390
-
- Mar 17, 2022
-
-
Pierre-Yves David authored
The official utility scale its timeout with the run-tests.py one. So lets use it. Differential Revision: https://phab.mercurial-scm.org/D12382
-
- Mar 19, 2022
-
-
Martin von Zweigbergk authored
If copy information is stored only in the commit extras and not in filelogs, then they get lost on amend if the file wasn't also modified in the working copy. That's because we create `filectx` object from the old commit in those cases, and the `.copysource()` of such objects read only from the filelog. This patch fixes it by always creating a new `memfilectx` in these cases, passing the calculated copy information to it. Differential Revision: https://phab.mercurial-scm.org/D12387
-
Martin von Zweigbergk authored
When copy information is stored in changesets, it gets lost on amend. We didn't notice that until now because our users at Google have the config set to `compatibility`, which means copy information is stored in both changeset and filelogs. Differential Revision: https://phab.mercurial-scm.org/D12386
-
- Mar 18, 2022
-
-
Pierre-Yves David authored
This new versioning will help us to maintain backward compatibility in the docker image. This will be useful to deal with mismatch between default/stable in version and the re-run CI on older changesets in the future. Once this changeset land on stable, we will have to merge it in default. Then we can start make backward incompatible changes in a new image version. Differential Revision: https://phab.mercurial-scm.org/D12388
-
Raphaël Gomès authored
During benchmarking it was determined that the use of more threads is very advantageous... until we use more than 16. This is most likely due to some resource contention (thrashing, etc.). Until we have time to figure out and fix the underlying cause, let's just cap at 16 threads. Differential Revision: https://phab.mercurial-scm.org/D12384
-
- Mar 15, 2022
-
-
Julien Cristau authored
Fixes: a3cf460a6b1b ("stream-clone: also filter the requirement we put in the bundle 2") Differential Revision: https://phab.mercurial-scm.org/D12377
-
Martin von Zweigbergk authored
As explained in the previous patch, we incorrectly leave conflict markers in both `$local` and `$output` since D12190. I don't understand why it broke but the fix is simple and clear after all the recent refactoring. Differential Revision: https://phab.mercurial-scm.org/D12379
-
Martin von Zweigbergk authored
When a merge tool is configured to keep conflict markers, they are supposed to be written to `$local` if `$output` is not mentioned in the tool's `merge-tools.<tool>.args` config, and in `$output` if it is mentioned. However, I broke the latter case in D12190. Differential Revision: https://phab.mercurial-scm.org/D12378
-
- Mar 14, 2022
-
-
Julien Cristau authored
We treat "rank" as an int everywhere, but declare rank_unknown as a char. On architectures where char is signed, that works out ok, but when char is unsigned, rank_unknown is 255 instead of -1. Differential Revision: https://phab.mercurial-scm.org/D12374
-
Luke Granger-Brown authored
The type of libc::c_char is u8 on aarch64 rather than i8, which causes the use of a specifically-typed constant to fail. Differential Revision: https://phab.mercurial-scm.org/D12373
-
- Mar 01, 2022
-
-
Raphaël Gomès authored
-
Raphaël Gomès authored
-
- Feb 28, 2022
-
-
Raphaël Gomès authored
We shouldn't rely on this member being present in `dirstate.py`, this creates unnecessary coupling. This also can trigger certain issues in edge-cases where the policy is changed at runtime or multiple Python environments fight, which is an added bonus. Differential Revision: https://phab.mercurial-scm.org/D12217
-
- Feb 21, 2022
-
-
Raphaël Gomès authored
Differential Revision: https://phab.mercurial-scm.org/D12205
-
- Feb 18, 2022
-
-
Raphaël Gomès authored
Differential Revision: https://phab.mercurial-scm.org/D12204
-
Raphaël Gomès authored
Differential Revision: https://phab.mercurial-scm.org/D12216
-
Raphaël Gomès authored
Differential Revision: https://phab.mercurial-scm.org/D12215
-
- Feb 22, 2022
-
-
Pierre-Yves David authored
See the comment in the test itself. Differential Revision: https://phab.mercurial-scm.org/D12214
-
- 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
-
- 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
-