- Dec 07, 2023
-
-
Raphaël Gomès authored
-
- Dec 02, 2023
-
-
Anton Shestakov authored
There is an stdin variable in the global scope of this module. And in the `finally` block of this try-finally statement we're checking `if stdin is not None`. Let's make sure we don't confuse code check tools into thinking we want to use global stdin by moving this line of code outside of `try`. This was caught by pytype 2023.11.21 on Python 3.11.2.
-
Anton Shestakov authored
All other uses of this function in this extension are already fixed (i.e. use strings instead of bytes). This was caught by pytype 2023.11.21 on Python 3.11.2.
-
- Dec 06, 2023
-
-
Pierre-Yves David authored
If we are in the inline case, we need to align the location of the "data" file with the temporary location of the file (i.e. "00changelog.i.a"). However we should not do that for non-inline case… and before this changeset we had been doing it. In addition `index_file` is already a property taking care of updating the "segment file" filename when needed. So we can simply remove all that code. As a result, code trying to read the diverted data before they were committed ended deeply confused as the "00changelog.i.a" file is nothing like the "00changelog.d" file. However nothing corrupted data as all writing where properly handled outside of the "segment file". In "best" cases this small in-memory corruption of the filename when unnoticed until the transaction was committed or rolled back and in the worse case, some data reading was failing during the transaction and resulted in the transaction to be rolled back. However wrong data never reached the disk, so this bug should be have corrupted any repository. This is not catch by tests because most test use a small repository and therefor an inline revlog. In addition the bug only triggers when a changelog read is done in the following "rare" situation: - after some delayed write - after that data have been written in a "divert" file (i.e. `00.changelog.i.a`) - before transaction commit - outside of a "writing" context The issue was introduced in d83d788590a8
-
Pierre-Yves David authored
Before this change, the index entry would be seen as "appended" to the data file. It did not hurt too much as there are never accessed for reading, but this was odd. So lets stop doing so.
-
Pierre-Yves David authored
This assert is currently happy, but it does not hurt to adds it to clarify expected state and catch potential error in the future.
-
- Dec 02, 2023
-
-
Pierre-Yves David authored
The temporary revlog cannot go through the inline → split process as this would break at transaction commit. (that might be fixable, but lets keep things simple for now). We introduce a cleaner way to enforce this as the previous one was broken in 6.6 On the way we remove multiple weird, fragile and broken overwrite of revlog attributes and we focus on passing the configuration across. We also had to update the test to actually create a non-inline revlog.
-
Pierre-Yves David authored
This allow for a clean skipping of the inline feature when needed, for example by censor.
-
Pierre-Yves David authored
This will be useful to fix censor in a later changeset.
-
Pierre-Yves David authored
The source revlog should not be inlined and it is…
-
- Dec 03, 2023
-
-
Pierre-Yves David authored
The function was not doing it what it advertise for a long time. So we fix it and we add a way for the perf extensions to detect broken version.
-
Pierre-Yves David authored
It seems like this code never run?
-
- Dec 04, 2023
-
-
Arseniy Alekseyev authored
The problem is that [hg locate] lists removed files too. We use [hg files] instead because that does not list removed files.
-
- Dec 02, 2023
-
-
Matt Harbison authored
This fixes test-https.t on Windows. It looks like the real error translation is "Cannot assign requested address.", and the message here is the start of a longer description, so I'm not sure why this part is emitted. But it's not worth digging into, as it's evidently the same failure.
-
Matt Harbison authored
The `identify --debug` command here on Windows emits skip updating dirstate: identity mismatch because of the debug switch, which got captured and added to `.hgtags`, and then hijinx ensued. The point of `--debug` seemed to be to get the long hash, so just do that with templating. I have not idea if the message is indicating a problem- there seems to be many more of them in other tests that are not present on Linux.
-
Matt Harbison authored
This fixes a "TypeError: getattr(): attribute name must be string" crash and subsequent test spew. This likely broke in 18c8c18993f0 and was missed in CI because `pytest-vcr` is missing.
-
- Nov 13, 2023
-
-
Martin von Zweigbergk authored
I guess we missed these instances because they're not covered by tests. This is a graft of 1625fe807c04 that landed on default.
-
- Nov 21, 2023
-
-
Raphaël Gomès authored
There are no differences between the rc and the actual release.
-
Raphaël Gomès authored
-
Raphaël Gomès authored
-
- Nov 07, 2023
-
-
Raphaël Gomès authored
-
Raphaël Gomès authored
- Nov 06, 2023
-
-
Pierre-Yves David authored
The revisions that are not part of the "working" set by other means should not be considered for the evolution related computation. This impact the test introduced in 5f9af8422b31 as this is actually a more semantic fix of the issue.
-
Pierre-Yves David authored
This is a useful function to get the revision relevant to these computation, lets make sure all code use it, so that we can improve that `_mutablerevs` function in a later changeset.
-
Pierre-Yves David authored
This is a useful function to get the revision relevant to these computation, lets make sure all code use it, so that we can improve that `_mutablerevs` function in a later changeset.
-
Raphaël Gomès authored
Since Rust 1.51.0, Cargo has support for a better dependency resolver. Workspace packages (like ours) need to explicitely set the field, so let's. https://doc.rust-lang.org/edition-guide/rust-2021/default-cargo-resolver.html
-
Raphaël Gomès authored
Our current version of clippy is older than the latest stable. The newest version has new lints that are moslty good advice, so let's apply them ahead of time. This has the added benefit of reducing the noise for developpers like myself that use clippy as an IDE helper, as well as being more prepared for a future clippy upgrade.
-
Raphaël Gomès authored
See explanation inline.
-
Raphaël Gomès authored
-
Raphaël Gomès authored
-
Raphaël Gomès authored
-
- Nov 01, 2023
-
-
Martin von Zweigbergk authored
This fixes the bug I demonstrated in the previous commit, but I'm not sure at all if it's the right way of doing it.
-
Martin von Zweigbergk authored
-
- Oct 18, 2023
-
-
Raphaël Gomès authored
Concretely, this command: ``` $ echo hg up -r <nodeid>; time hg revert dir1 dir2 -r <othernode> --debug hg up -r <nodeid> real 0m14.690s user 0m14.766s sys 0m5.430s ``` was much slower despite using 16 cores before this change. The approach taken here is the same one used in match.py, in exactmatcher. This changeset was originally written by Valentin Gatien-Baron in a private repository. I have redacted the commit message and did a minor clean up of the code.
-
- Oct 27, 2023
-
-
Pierre-Yves David authored
This can provides a massive boost to the reading of multiple revision and the computation of a valid delta chain. This greatly help operation like `hg log --patch`, delta computation (helping pull/unbundle), linkrev adjustment (helping copy tracing). A first round of benchmark for `hg log --patch --limit 1000` shows improvement in the 10-20% range on "small" repository like pypy or mercurial and large improvements (about 33%) for more complex ones like netbeans and mozilla's. These speeds up are consistent with the improvement to `hg pull` (from a server sending poor deltas) I saw benchmarking this last year. Further benchmark will be run during the freeze. I added some configuration in the experimental space to be able to further test the effect of various tuning for now. This feature should fit well in the "usage/resource profile" configuration that we should land next cycle. When it does not provides a benefit the overhead of the cache seem to be around 2%, a small price for the big improvement. In addition I believe we could shave most of this overhead with a more efficent lru implementation.
-
Pierre-Yves David authored
We will introduce some caching in this method in the next changeset, we make some of the most "disruptive" change first as touching this could break (and maybe did during the development process).
-