- Oct 01, 2020
-
-
Raphaël Gomès authored
This is not done for the `dirstate-tree` feature, since it lacks `iter_mut`. Differential Revision: https://phab.mercurial-scm.org/D9136
-
- Oct 06, 2020
-
-
Jörg Sonnenberger authored
The dynamically created tuple shows up in memory profiles and the use of nullid prevents the normal constant building to work. Differential Revision: https://phab.mercurial-scm.org/D9154
-
- Oct 05, 2020
-
-
Gregory Szorc authored
- is not a valid identifier character in WiX Ids. So let's normalize accordingly. I discovered this issue after a subsequent change which introduces a directory with a - in its name. Differential Revision: https://phab.mercurial-scm.org/D9147
-
- Oct 03, 2020
-
-
Gregory Szorc authored
Let's use the latest/greatest version of Rust in the automation environment. Differential Revision: https://phab.mercurial-scm.org/D9146
-
- Oct 04, 2020
-
-
Gregory Szorc authored
Let's keep our build environment modern. We upgrade 3.5-3.8 on Linux. Just 3.7 and 3.8 on Windows because we don't use <3.7 on Windows. Differential Revision: https://phab.mercurial-scm.org/D9145
-
- Sep 30, 2020
-
-
Ludovic Chabant authored
Differential Revision: https://phab.mercurial-scm.org/D9134
-
- Sep 25, 2020
-
-
Pierre-Yves David authored
The object contains all the data we need. For example, the `is_merged` callback can now use the associated precomputed data. This will be useful again soon when the `salvaged` set will be introduce to solve the issue with delete file reverted during a merge. See 4b582a93316a and 14be07d5603c for details. Differential Revision: https://phab.mercurial-scm.org/D9117
-
Pierre-Yves David authored
With the new sidedata storage that include data about all file changes, every revision has one, so the sidedata flag is not longer a good way to spot changeset with copy information. So we drop this check to simplify the code We optimisation itself provided an interesting speedup, so we will likely reintroduce something similar, with a dedicated flag, in the future. Differential Revision: https://phab.mercurial-scm.org/D9116
-
Pierre-Yves David authored
We want to return data in a different form, so we need different revinfo function. At that point it make sense to have different getter. Differential Revision: https://phab.mercurial-scm.org/D9115
-
Pierre-Yves David authored
They are two main ways to run the changeset-centric copy-tracing algorithm. One fed from data stored in side-data and still in development, and one based on data stored in extra (with a "compatibility" mode). The `extra` based is used in production at Google, but still experimental in code. It is mostly unsuitable for other users because it affects the hash. The side-data based storage and algorithm have been evolving to store more data, cover more cases (mostly around merge, that Google do not really care about) and use lower level storage for efficiency. All this changes make is increasingly hard to maintain de common code base, without impacting code complexity and performance. For example, the compatibility mode requires to keep things at different level than what we need for side-data. So, I am duplicating the involved functions. The newly added `_extra` variants will be kept as today, while I will do some deeper rework of the side data versions. Long terms, the side-data version should be more featureful and performant than the extra based version, so I expect the duplicated `_extra` functions to eventually get dropped. Differential Revision: https://phab.mercurial-scm.org/D9114
-
- Sep 15, 2020
-
-
Pierre-Yves David authored
The `files` field is know to have issue, using a list with fixed, and fixable, computation can only help. For example, using a fixes `files` field would be enough to fix issue6219 once this feature get usable in production. We focus on having thing working for now, we will deal with performance later. Right now we have a ironic situation were we parse sorted value from disk to turn them into a set and then having to sort it again. Differential Revision: https://phab.mercurial-scm.org/D9092
-
Pierre-Yves David authored
Since all filename are now included in the sidedata block, we no longer need to decode the `files` from the revision. Differential Revision: https://phab.mercurial-scm.org/D9091
-
Pierre-Yves David authored
We need to store new data so this is a good opportunity to rework this fully. 1) We directly store the list of affected file in the side data: * This avoid having to fetch and parse the `files` list in the revision in addition to the sidedata. Making the data more self sufficient. * This work around situation where that `files` field contains wrong information, and open the way to other bug fixing (eg: issue6219) * The format (fixed initial index, sorted files) allow for fast lookup of filename within the structure. * This unify the storage of affected files and copies sources and destination, limiting the number filename stored redundantly. * This prepare for the fact we should drop the `files` as soon as we do any change affecting the revision schema. * This rely on compression to avoid a significant increase of the changelog.d. More testing on this will be done before we freeze the final format. 2) We can store additional data: * The new "merged" field, * A future "salvaged" set recording files that might have been deleted but have were still present in the final result. Differential Revision: https://phab.mercurial-scm.org/D9090
-
- Oct 05, 2020
-
-
Raphaël Gomès authored
I only found two such bugs in `contrib/perf.py` Differential Revision: https://phab.mercurial-scm.org/D9149
-
- Oct 02, 2020
-
-
Pierre-Yves David authored
That test rely on timing measurement, because it is about timing measurement. We try to filter out the most common source of flakyness (slow disk stating)
-
Pulkit Goyal authored
We should for whether bids contain a combination of actions which conflict with each other. Since right now we only have couple of such combination, and combinations also consist of two actions, we were checking for them only when length of bids is 2. Let's check that irrespective of the length of bids.
-
Martin von Zweigbergk authored
-
Pulkit Goyal authored
-
Pulkit Goyal authored
-
- Sep 10, 2020
-
-
Yuya Nishihara authored
"hg grep" and "hg churn" will use this interface.
-
- Sep 12, 2020
-
-
Yuya Nishihara authored
This is the last opts.get() found in getrevs(). It might be better to define an enum, but for now, it is just a string.
-
Yuya Nishihara authored
Maybe this is the most uninteresting patch. I want to remove the dependency on untyped/unlabeled opts dict at all. I thought --no-merges and --only-merges could be merged into a single enum value, but actually they both can be set to filter out everything.
-
Yuya Nishihara authored
This is the flag to forcibly enable the slowpath. I'm not sure if the slowpath parameter should be merged with this flag, so let's keep it as an immutable flag for now. I'll add another flag to support "grep --all-files". These two will be the flags which aren't directly mapped from the command-line options.
-
- Sep 25, 2020
-
-
Pierre-Yves David authored
We are about to introduce more function and more variants, it seems better to align everything on the new scheme, allowing `_` for clarify. We do this aligned in a dedicated changeset to make the next changesets simpler. Differential Revision: https://phab.mercurial-scm.org/D9113
-
- Sep 28, 2020
-
-
Pierre-Yves David authored
We are going to start using them more having some basic caching would be good. The focus is not about performance yet, however avoid some easy N² trap seems reasonable. Differential Revision: https://phab.mercurial-scm.org/D9112
-
- Sep 25, 2020
-
-
Pierre-Yves David authored
We use this function internally too because that will make cache invalidation simpler. Differential Revision: https://phab.mercurial-scm.org/D9111
-
- Oct 02, 2020
-
-
Pierre-Yves David authored
As pointed by Pulkit Goyal. Differential Revision: https://phab.mercurial-scm.org/D9143
-
- Oct 01, 2020
-
-
Martin von Zweigbergk authored
`hg fix` runs the formatters from the repo root so it doesn't pick up the `rustfmt.toml` configs we had in each the `hg-core`, `hg-cpython`, and `rhg` packages, which resulted in warnings about `async fn` not existing in Rust 2015. This patch moves the `rustfmt.toml` file to the root so `hg fix` will use it. By putting the `rustfmt.toml` file in a higher-level directory, it also applies to the `chg` and `hgcli` packages. That makes `test-check-rust-format.t` fail, so this patch also applies the new formatting rules to those packages. Differential Revision: https://phab.mercurial-scm.org/D9142
-
- Sep 29, 2020
-
-
Ludovic Chabant authored
We could potentially exclude the entire sqlalchemy library.
-
- Sep 30, 2020
-
-
Pulkit Goyal authored
ACTION_KEEP_NEW and ACTION_CHANGED_DELETED are conflicting actions as one says that file is new while other says that file was present earlier and has changed-delete conflicts. Let's do changed-delete which will lead to conflicts and make user choose the right way.
-
Pulkit Goyal authored
I was looking into fixing the broken behavior only to find out that we had a typo in the commit message and merge was not performed.
-
Pulkit Goyal authored
ACTION_GET represents that either the file is created on remote or it's newer on the remote side. However, since we have a ACTION_DELETE_CHANGED too, it means the file is not present locally and ACTION_GET is representing that file was created on remote. Having both ACTION_GET and ACTION_DELETED_CHANGED is conflicting because one says that file was created on remote and other says file has delete-changed conflicts. Let's choose ACTION_DELETED_CHANGED which will result in conflicts and make user choose the right way forward.
-
Pulkit Goyal authored
-
- Oct 01, 2020
-
-
Raphaël Gomès authored
Differential Revision: https://phab.mercurial-scm.org/D9137
-
- Sep 28, 2020
-
-
Raphaël Gomès authored
Debian stable backported `rustc 1.41.1` for a Firefox release that needed it, so we can finally update the compiler version to something that isn't more than a year old. This means that (among other things [1]), `async await` syntax is usable! Differential Revision: https://phab.mercurial-scm.org/D9138
-
- Sep 25, 2020
-
-
Pierre-Yves David authored
We will need it in `_getsidedata` as soon as we start persisting that set. Differential Revision: https://phab.mercurial-scm.org/D9089
-
Pierre-Yves David authored
The data is easy to gather at commit time, and we need it for changeset centric copy tracing. Right now, it is not persisted so we cannot use it. However we will fix this part very soon, gathering something to persist was necessary first. Differential Revision: https://phab.mercurial-scm.org/D9088
-
- Sep 24, 2020
-
-
Pierre-Yves David authored
The set of merged files is used when doing changeset centric copy tracing (cf `is_merged` in `mercurial/copies.py`. So tracking (and persisting) this set will be useful. We start with adding the attribute on the new object. Differential Revision: https://phab.mercurial-scm.org/D9087
-
- Sep 30, 2020
-
-
Raphaël Gomès authored
The previous patch added the `dirstate-tree` feature gate to enable the two dirstate implementations to co-habit while the tree-based one gets better. This patch copies over the code that differs, be it because the algorithm changed or because the borrowing rules are different. Indeed, `DirstateTree` is not observationally equivalent to the std `HashMap` in the APIs we use: it does not have the `Entry` API (yet?) and its iterator returns owned values instead of references. This last point is because the implementation needs to be changed to a more clever and efficient solution. Differential Revision: https://phab.mercurial-scm.org/D9133
-
Raphaël Gomès authored
This feature gates (at compile-time) the use of the newly-added dirstate tree. The motivation for this is that the dirstate tree is currently *very* slow; replacing the current hashmap-based dirstate is not a viable solution in terms of performance... and why would you be using the Rust implementation if not for performance? The feature will also help reviewers better understand the differences that will slowly appear as the dirstate tree gets better. Differential Revision: https://phab.mercurial-scm.org/D9132
-