- Dec 19, 2023
-
-
Pierre-Yves David authored
We don't have a `heads` method returning nodeid, but this is very easy to get the same result. This was flagged by pytype. We can note that the fact this code did not break is probably a good sign that it is dead code. However this is a question outside of the scop of this series.
-
Pierre-Yves David authored
As pytype flagged bug in this method it highlighted that this methode being never called anywhere.
-
Pierre-Yves David authored
It is not because it is NotImplemented that it should use a bad signature. Fix it to please pytype.
-
Pierre-Yves David authored
It is not because it is NotImplemented that it should use a bad signature. Fix it to please pytype.
-
Pierre-Yves David authored
This will avoid pytype complaining about the try/except range.
-
Pierre-Yves David authored
pytype point that the subclass signature have been updated.
-
- Dec 20, 2023
-
-
Pierre-Yves David authored
After loosing 2d6 SAN, I eventually understood that pytype was confused by method return type. Pytype is now happy.
-
- Dec 19, 2023
-
-
Pierre-Yves David authored
pytype is grumpy about a sub method having a different signature than the one we use here. pytype error: internalmerge: Overriding method signature mismatch [signature-mismatch] Base signature: 'def _funcregistrarbase._extrasetup(self, name, func) -> Any'. Subclass signature: 'def internalmerge._extrasetup(self, name, func, mergetype, onfailure = None, precheck = None, binary = False, symlink = False) -> Any'. Parameter 'mergetype' must have a default value.
-
Pierre-Yves David authored
The `tmpl` variable is used in the `except` and `finally`, so we need it created before the `try` is open.
-
Pierre-Yves David authored
This seems to appease a confused pytype.
-
Pierre-Yves David authored
This seems to be a Windows only attribute.
-
Pierre-Yves David authored
This is an optional import so we should not complains about it.
-
Pierre-Yves David authored
pytype is grumpy about the dict.update having a more complex signature than the one we use here. pytype error: itemregister: Overriding method signature mismatch [signature-mismatch] Base signature: 'def builtins.dict.update(self) -> None'. Subclass signature: 'def itemregister.update(self, other) -> Any'. Parameter 'other' must have a default value.
-
- Dec 20, 2023
-
-
Pierre-Yves David authored
If pytype did not crash while generating stub, that message is kind of confusing. It seems simple enough to avoid it in this case.
-
Pierre-Yves David authored
As the imported types are now used by type annotation, these ugly assert are no longer needed.
-
Pierre-Yves David authored
We can't assign type to the "for" variant on the fly, so we type the variable and method used instead.
-
Pierre-Yves David authored
Same logic as for the previous changeset, but for "type comment" annotating variables, not function/method. As for the previous changeset, we had to adjust for of the types to actually match what was happening.
-
- Dec 19, 2023
-
-
Pierre-Yves David authored
We support direct type annotations now, while pytype is starting to complains about them.
-
- Dec 20, 2023
-
-
Pierre-Yves David authored
Flagged by pytype when a later changeset is applied moving typing comment to annotation. We fix this ahead of the annotation change to make sure pytype remains happy after the change. We have to do fairly crazy dance for pytype to be happy. This probably comes from the fact IOError.filename probably claims to be `str` while it is actually `bytes` if the filename raising that `IOError` is bytes. At the same time, `IOError.strerror` is consistently `str` and should be passed as `str` everywhere.
-
Pierre-Yves David authored
First we no longer needs the pycompat layer, second having the types imported in all case will allow to use them more directly in type annotation, something important to upgrade the old "type comment" to proper type annotation. A lot a stupid assert are needed to keep pyflakes happy. We should be able to remove most of them once the type comment have been upgraded.
-
- Nov 08, 2023
-
-
Pierre-Yves David authored
Let's use this new concept for what it is meant for. This provides a sizable speed up for reading multiple revision for some complexe repositories. ### data-env-vars.name = pypy-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.perf.read-revisions # benchmark.variants.order = reverse memory-medium: 1.892400 memory-high: 1.722934 (-8.61%) # benchmark.variants.order = default memory-medium: 1.751542 memory-high: 1.589340 (-9.49%)
-
- Oct 09, 2023
-
-
Pierre-Yves David authored
They currently do nothing, but this open the way to actually use them.
-
Pierre-Yves David authored
This config will be used for behavior and performance adjustment depending of the repository role.
-
- Dec 13, 2023
-
-
Pierre-Yves David authored
These are perfect targets for the common-pattern matching.
-
- Dec 24, 2023
-
-
Pierre-Yves David authored
I need the fix to `generate-churning-bundle.py`.
-
- Nov 17, 2023
-
-
Pierre-Yves David authored
This script has apparently not run for a long time.
-
- Dec 16, 2023
-
-
Martin von Zweigbergk authored
Commit 17a822d7943e broke some of our internal tests at Google because the `dir` variable contains a trailing slash since that commit. Let's restore the old behavior by stripping that trailing slash.
-
- Dec 18, 2023
-
-
Martin von Zweigbergk authored
This demonstrates a bug introduced in 17a822d7943e.
-
Martin von Zweigbergk authored
The path matcher has an optimization for when all paths are `rootfilesin:`. This optimization exists in both Python and Rust. However, the Rust implementation currently has a bug that makes it fail in most cases. The bug is that it `rfind()` where it was clearly intended to use `rposition()`. This patch fixes that and adds a test.
-
- Dec 12, 2023
-
-
Pierre-Yves David authored
This is deprecated since 6.4. We should drop it now.
-
- Dec 20, 2023
-
-
Raphaël Gomès authored
All of these were hinted at by clippy and make the code simpler.
-
Raphaël Gomès authored
This was hinted at by clippy, and makes it more obvious that nothing is happening in the `None` case.
-
- Dec 01, 2023
-
-
Pierre-Yves David authored
This is useful when dealing with corruption, as all the corrupted revision can be dealt with in one go.
-
Pierre-Yves David authored
If we informs the user about head checking, we should tell him when the other operation happens too. Otherwise the user can imagine to still be in the head checking part.
-
Pierre-Yves David authored
In some case we spend hours of time checking the heads to censors a simple file is not a good behavior. Especially when censors is used to removed corrupted content.
-
Pierre-Yves David authored
The time this can consume can be a surprise to the user, lets be explicit about it.
-
Pierre-Yves David authored
And add a message to will explain the possibly long time spent doing this.
-
- Dec 21, 2023
-
-
Pierre-Yves David authored
After writing updated data, we reload the in-memory data. However, that logic was… wrong. We were doing file read when mmap was requested and when the configuration was requesting to not use mmap… we were using it. This should now be fine.
-
- Dec 14, 2023
-
-
Raphaël Gomès authored
Accessing the `RwLock` ended up showing up in profiles even with no contention. Offsets only exist for inline revlogs, so gate everything behind an inline check.
-
- Dec 06, 2023
-
-
Raphaël Gomès authored
Same optimization as before, but for the nodeids this time.
-