- Feb 06, 2025
-
-
Georges Racinet authored
This finally makes use of the latest `path` utilities. As a side note, `paths_py_list` cannot use `PyHgPathRef` itself because by calling `as_ref()` it would make the compiler believe it returns code owner by the inner `map` closure. Also, `status_path_py_list(py, &status_res.modified)?` can probably be replaced by ``` PyList::new(status_res.modified.iter().map(|p| PyHgPathRef(p)))? ``` with (granted) little benefit, but it could spare us a new utility each time there is a new collection type to return.
-
- Feb 05, 2025
-
-
Georges Racinet authored
-
Georges Racinet authored
We hesitated on this one: was it worth it to introduce the `with_inner_*` helpers? Finally quickness and uniformity decided we should. At this point it would be interesting to do something in `pyo3-sharedref` to provide them automatically, but some callers will need the self reference (as in `revlog`), some would not.
-
- Feb 04, 2025
-
-
Georges Racinet authored
-
Georges Racinet authored
This requires yet another `Sync` marker in `hg-core`. Of course we are leveraging the new `py_shared_iterator!` for this.
-
Georges Racinet authored
It turns out that it is fairly easy to call the core `DirstateMap` methods from a `CopyMap` PyO3 object, hence we do not need to introduce proxy methods on the FFI `DirstateMap` as was done in `rust-cpython`. It is more straightforward, and is somewhat easier to make with PyO3 because we have all these intermediates between the Rust and Python layers (`Bound`, `Py<T>`). From the Python side, a difference with the `hg-cpython` version is that `CopyMap` would be instantiable also directly as `CopyMap(dirstate_map)`. Reproducing the `from_inner`, with refcount increase the responsibility in the `DirstateMap.copymap()` method would have been less natural (as there is no need with the separate `from_inner` in PyO3 constructors) and somehow we felt it was sounder to force the ref cloning from `CopyMap`.
-
- Jan 30, 2025
-
-
Georges Racinet authored
Here we noticed a discrepancy in the truncated timestamps with what `DirstateItem` uses. More domain knowledge would be needed to decide whether it is normal or it would require some cleanup.
-
- Feb 05, 2025
-
-
Georges Racinet authored
This may seem trivial, but it allows to use `map_err(to_string_value_error)` in many places, instead of defining a closure `map_err(|e| PyValueError::new_err(e.to_string())`, and it is much better for readability.
-
- Feb 06, 2025
-
-
Georges Racinet authored
The `PyHgPathDirstateV2Result` new type is unfortunately heavily named, but it should allow for very straightforward conversions of collections.
-
- Jan 29, 2025
-
-
Georges Racinet authored
Pretty straightforward with `py_shared_iterator!`.
-
- Feb 04, 2025
-
-
Georges Racinet authored
This convenience will help reducing the boilerplate for one of the most common use cases of the `pyo3_sharedref` crate. It is an improved adaptation of a similar macro that was in `hg-cpython` (but not in `rust-cpython`). The improvement is that it takes care of the constructor, sparing the `share_map` to the caller.
-
- Jan 29, 2025
-
-
Georges Racinet authored
This takes care of all read-only methods except: - copymap methods - methods returning iterators These two categories will be done in forthcoming changesets.
-
- Feb 06, 2025
-
-
Georges Racinet authored
Same as `PyRevision`, the `PyHgPathRef` new-type wrapper is not a Python type, but it implements `IntoPyObject`, which will spare us tedious uses of `PyBytes::new`. The `paths_py_list` function is the the analog of `revs_py_list` for paths. There was one similar utility in `hg-cpython`, within the `dirstate::status` module. We feel it should be in a more global location, and have a name consistent with utilities for revisions. The `paths_pyiter_collect` function is similarly the analog of `revs_pyiter_collect`.
-
- Jan 29, 2025
-
-
Georges Racinet authored
With rust-cpython, using `Option<T>` in the Rust signature would translate automatically into a Python keyword argument, leading to unpleasantness on the Rust side in some cases (not here, though). with PyO3, though the signature can be specified explicitly (positional in this case) and there is even a warning that the implicit keywords style is deprecated.
-
- Feb 06, 2025
-
-
Georges Racinet authored
It will be simpler to go through the `PyNode` new-type, than to call `PyBytes::new(py, node.as_bytes())`. This also opens up many implicit usages, e.g, by `PyList::new` and the various "protocol" methods `PyAnyMethods::set_item`. Also we made the inner `Node` public because we feel `PyNode(n)` to be nicer than `n.into::<PyNode>()` as typically a bare `n.into()` will not be enough for `into_pyobject()` to know what to do.
-
- Jan 29, 2025
-
-
Georges Racinet authored
The rust-cpython version was using `Cell`, which is not `Sync`, hence we replace it with the pervasive `RwLock`. This brings in turn some minor simplification, as we can access a mutable reference to the inner data directly, and do not need the `update()` method (a shortcut to perform the `get`/`set` dance of the `Cell`). Tighter signature control in PyO3 means that `set_fallback_exec` can probably be simplified, which we might do once everything is validated by the tests.
-
Georges Racinet authored
-
Georges Racinet authored
-
Georges Racinet authored
This parallels what we have done earlier with the version in rust-cpython. It was not needed until now because the previous use of this struct was in `InnerRevlog` for the single revision cache, and which is shielded in `hg-core` behind a `Mutex`. But `DirstateMap` is needing its `owner` to be `Sync` more directly. In turn it means that maybe we could remove the `Mutex` of `hg-core`.
-
Georges Racinet authored
For the purposes of providing PyO3 bindings, the data fields that will be exposed to Python have to be `Sync`, hence that is the case of `OwningDirstateMap` and its `owner` field. We had to do something similar for the PyO3 bindings of `revlog`. In this case, it forces us to adapt the `Deref` wrapper of `PyBytes` used in `hg-cpython`, because it must itself now be `Sync` and raw pointers are not. This looks even uglier than it used to, but it does not matter much, because our ultimate goal is to remove the rust-cpython bindings altogether.
-
- Jan 24, 2025
-
-
Georges Racinet authored
-
Georges Racinet authored
-
- Feb 12, 2025
-
-
Jeff Sipek authored
...otherwise pytype complains. When we fail to look up a rev, we must convert it to a byte string before we raise the exception.
-
- Feb 03, 2025
-
-
Arseniy Alekseyev authored
This change makes it so that if there's an error parsing the returned bundle (or any other error in this block), the temporary bundle files are still cleaned up.
-
Arseniy Alekseyev authored
-
Arseniy Alekseyev authored
Split the function in three and introduce an explicit class that tracks state. The goal here is to improve error handling, in particular so it's easy to wrap things in a try/with without having to grow an already-significant indentation level. The code can probably be cleaned up further, but I don't want to bite off a piece too large to chew.
-
- Jan 07, 2025
-
-
Raphaël Gomès authored
Unfortunately, the `static_assertions` crate has never been updated past its 1.1.0 release, meaning we don't get the (now 5+ years old) change that allows us to use generic parameters, so we use `static_assertions_next`.
-
- Jan 06, 2025
-
-
Raphaël Gomès authored
This is useful when debugging/light instrumentation, we already use it all the time in other packages.
-
- Jan 05, 2025
-
-
Raphaël Gomès authored
This is the convention in the rust code, since all other places are plural.
-
- Jan 07, 2025
-
-
Raphaël Gomès authored
These dependencies are not needed anymore, so trim them down.
-
Raphaël Gomès authored
This was unvaluable during the start of the transition period, but is useless now that the `InnerRevlog` translation is over.
-
Raphaël Gomès authored
This does many things that would involve a lot of churn if done separately: - Move the ancestors, revision and dagops modules to use the new `SharedByPyObject` instead of the old `UnsafePyLeaked` - Move the ancestors and discovery Python tests to using PyO3 - Change all calls to `importrust` to use `pyo3=True`, where applicable # Benchmarks I've run a bunch of benchmarks that involve revlog use. The TL;DR is that the pyo3 code is basically always very slightly faster if/when it's not within the noise levels. Here is the report: ``` ### data-env-vars.name = heptapod-public-2024-03-25-ds2-pnm # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 8.425445 ~~~~~ after: 8.170007 (-3.03%, -0.26) ### data-env-vars.name = heptapod-public-2024-03-25-ds2-pnm # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 8.328969 ~~~~~ after: 8.193693 (-1.62%, -0.14) ### data-env-vars.name = heptapod-public-2024-03-25-ds2-pnm # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.318721 ~~~~~ after: 0.317050 ### data-env-vars.name = heptapod-public-2024-03-25-ds2-pnm # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.315603 ~~~~~ after: 0.311842 (-1.19%, -0.00) ### data-env-vars.name = heptapod-public-2024-03-25-ds2-pnm # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 15.422452 ~~~~~ after: 15.417195 ### data-env-vars.name = heptapod-public-2024-03-25-ds2-pnm # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 15.424805 ~~~~~ after: 15.417188 ### data-env-vars.name = heptapod-public-2024-03-25-zstd-sparse-revlog # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 8.447181 ~~~~~ after: 8.279321 (-1.99%, -0.17) ### data-env-vars.name = heptapod-public-2024-03-25-zstd-sparse-revlog # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 8.399840 ~~~~~ after: 8.310752 (-1.06%, -0.09) ### data-env-vars.name = heptapod-public-2024-03-25-zstd-sparse-revlog # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.352319 ~~~~~ after: 0.353375 ### data-env-vars.name = heptapod-public-2024-03-25-zstd-sparse-revlog # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.322006 ~~~~~ after: 0.323852 ### data-env-vars.name = heptapod-public-2024-03-25-zstd-sparse-revlog # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 16.183304 ~~~~~ after: 16.177351 ### data-env-vars.name = heptapod-public-2024-03-25-zstd-sparse-revlog # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 16.169041 ~~~~~ after: 16.173200 ### data-env-vars.name = mercurial-public-2018-08-01-ds2-pnm # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 0.559746 ~~~~~ after: 0.548727 (-1.97%, -0.01) ### data-env-vars.name = mercurial-public-2018-08-01-ds2-pnm # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 0.551662 ~~~~~ after: 0.548478 ### data-env-vars.name = mercurial-public-2018-08-01-ds2-pnm # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.294767 ~~~~~ after: 0.291008 (-1.28%, -0.00) ### data-env-vars.name = mercurial-public-2018-08-01-ds2-pnm # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.290598 ~~~~~ after: 0.288139 ### data-env-vars.name = mercurial-public-2018-08-01-ds2-pnm # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 0.128753 ~~~~~ after: 0.127942 ### data-env-vars.name = mercurial-public-2018-08-01-ds2-pnm # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 0.128310 ~~~~~ after: 0.128236 ### data-env-vars.name = mercurial-public-2018-08-01-ds2-pnm # benchmark.name = hg.perf.unbundle # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.issue6528 = default # benchmark.variants.revs = any-10000-extra-rev # benchmark.variants.source = default before: 4.968975 ~~~~~ after: 4.804225 (-3.32%, -0.16) ### data-env-vars.name = mercurial-public-2018-08-01-ds2-pnm # benchmark.name = hg.perf.unbundle # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.issue6528 = default # benchmark.variants.revs = any-10000-extra-rev # benchmark.variants.source = default before: 5.038150 ~~~~~ after: 4.821872 (-4.29%, -0.22) ### data-env-vars.name = mercurial-public-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 0.560542 ~~~~~ after: 0.557323 ### data-env-vars.name = mercurial-public-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 0.554099 ~~~~~ after: 0.553200 ### data-env-vars.name = mercurial-public-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.292676 ~~~~~ after: 0.292513 ### data-env-vars.name = mercurial-public-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.288629 ~~~~~ after: 0.287737 ### data-env-vars.name = mercurial-public-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 0.223442 ~~~~~ after: 0.223168 ### data-env-vars.name = mercurial-public-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 0.223376 ~~~~~ after: 0.222181 ### data-env-vars.name = mercurial-public-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.perf.unbundle # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.issue6528 = default # benchmark.variants.revs = any-10000-extra-rev # benchmark.variants.source = default before: 4.691464 ~~~~~ after: 4.567641 (-2.64%, -0.12) ### data-env-vars.name = mercurial-public-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.perf.unbundle # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.issue6528 = default # benchmark.variants.revs = any-10000-extra-rev # benchmark.variants.source = default before: 4.700062 ~~~~~ after: 4.616739 (-1.77%, -0.08) ### data-env-vars.name = mercurial-public-2024-03-22-ds2-pnm # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 0.708915 ~~~~~ after: 0.697581 (-1.60%, -0.01) ### data-env-vars.name = mercurial-public-2024-03-22-ds2-pnm # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 0.698667 ~~~~~ after: 0.693792 ### data-env-vars.name = mercurial-public-2024-03-22-ds2-pnm # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.302459 ~~~~~ after: 0.296517 (-1.96%, -0.01) ### data-env-vars.name = mercurial-public-2024-03-22-ds2-pnm # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.297432 ~~~~~ after: 0.293347 (-1.37%, -0.00) ### data-env-vars.name = mercurial-public-2024-03-22-ds2-pnm # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 0.200229 ~~~~~ after: 0.199035 ### data-env-vars.name = mercurial-public-2024-03-22-ds2-pnm # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 0.199995 ~~~~~ after: 0.199130 ### data-env-vars.name = mercurial-public-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 0.712384 ~~~~~ after: 0.703804 (-1.20%, -0.01) ### data-env-vars.name = mercurial-public-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 0.704736 ~~~~~ after: 0.699944 ### data-env-vars.name = mercurial-public-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.300989 ~~~~~ after: 0.300870 ### data-env-vars.name = mercurial-public-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.296388 ~~~~~ after: 0.295122 ### data-env-vars.name = mercurial-public-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 0.323753 ~~~~~ after: 0.328260 (+1.39%, +0.00) ### data-env-vars.name = mercurial-public-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 0.326091 ~~~~~ after: 0.325825 ### data-env-vars.name = mozilla-central-2018-08-01-ds2-pnm # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 36.797693 ~~~~~ after: 35.395390 (-3.81%, -1.40) ### data-env-vars.name = mozilla-central-2018-08-01-ds2-pnm # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 36.400602 ~~~~~ after: 35.793828 (-1.67%, -0.61) ### data-env-vars.name = mozilla-central-2018-08-01-ds2-pnm # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.303372 ~~~~~ after: 0.302275 ### data-env-vars.name = mozilla-central-2018-08-01-ds2-pnm # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.300228 ~~~~~ after: 0.299014 ### data-env-vars.name = mozilla-central-2018-08-01-ds2-pnm # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 133.610273 ~~~~~ after: 134.082667 ### data-env-vars.name = mozilla-central-2018-08-01-ds2-pnm # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 133.560602 ~~~~~ after: 133.560186 ### data-env-vars.name = mozilla-central-2018-08-01-ds2-pnm # benchmark.name = hg.perf.unbundle # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.issue6528 = default # benchmark.variants.revs = any-10000-extra-rev # benchmark.variants.source = default before: 32.279654 ~~~~~ after: 31.937365 (-1.06%, -0.34) ### data-env-vars.name = mozilla-central-2018-08-01-ds2-pnm # benchmark.name = hg.perf.unbundle # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.issue6528 = default # benchmark.variants.revs = any-10000-extra-rev # benchmark.variants.source = default before: 32.393790 ~~~~~ after: 32.059161 (-1.03%, -0.33) ### data-env-vars.name = mozilla-central-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 36.750314 ~~~~~ after: 35.659837 (-2.97%, -1.09) ### data-env-vars.name = mozilla-central-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 36.132511 ~~~~~ after: 35.533999 (-1.66%, -0.60) ### data-env-vars.name = mozilla-central-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.426249 ~~~~~ after: 0.427237 ### data-env-vars.name = mozilla-central-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.297567 ~~~~~ after: 0.297548 ### data-env-vars.name = mozilla-central-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 135.684726 ~~~~~ after: 135.554733 ### data-env-vars.name = mozilla-central-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 135.521429 ~~~~~ after: 135.471735 ### data-env-vars.name = mozilla-central-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.perf.unbundle # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.issue6528 = default # benchmark.variants.revs = any-10000-extra-rev # benchmark.variants.source = default before: 32.138181 ~~~~~ after: 31.376612 (-2.37%, -0.76) ### data-env-vars.name = mozilla-central-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.perf.unbundle # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.issue6528 = default # benchmark.variants.revs = any-10000-extra-rev # benchmark.variants.source = default before: 32.436170 ~~~~~ after: 31.800662 (-1.96%, -0.64) ### data-env-vars.name = mozilla-central-2024-03-22-ds2-pnm # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 56.412651 ~~~~~ after: 55.968979 ### data-env-vars.name = mozilla-central-2024-03-22-ds2-pnm # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 57.291139 ~~~~~ after: 55.623600 (-2.91%, -1.67) ### data-env-vars.name = mozilla-central-2024-03-22-ds2-pnm # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.305015 ~~~~~ after: 0.302645 ### data-env-vars.name = mozilla-central-2024-03-22-ds2-pnm # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.299651 ~~~~~ after: 0.296140 (-1.17%, -0.00) ### data-env-vars.name = mozilla-central-2024-03-22-ds2-pnm # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 372.603646 ~~~~~ after: 379.958592 (+1.97%, +7.35) ### data-env-vars.name = mozilla-central-2024-03-22-ds2-pnm # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 372.571283 ~~~~~ after: 376.975082 (+1.18%, +4.40) ### data-env-vars.name = mozilla-central-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 57.900620 ~~~~~ after: 56.628974 (-2.20%, -1.27) ### data-env-vars.name = mozilla-central-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 56.772457 ~~~~~ after: 56.219994 ### data-env-vars.name = mozilla-central-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.497401 ~~~~~ after: 0.498934 ### data-env-vars.name = mozilla-central-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.298446 ~~~~~ after: 0.297411 ### data-env-vars.name = mozilla-central-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 376.794500 ~~~~~ after: 377.126872 ### data-env-vars.name = mozilla-central-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 377.108643 ~~~~~ after: 378.355222 ### data-env-vars.name = mozilla-try-2024-03-26-ds2-pnm # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 58.211350 ~~~~~ after: 56.179941 (-3.49%, -2.03) ### data-env-vars.name = mozilla-try-2024-03-26-ds2-pnm # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 1.221867 ~~~~~ after: 1.171836 (-4.09%, -0.05) ### data-env-vars.name = mozilla-try-2024-03-26-ds2-pnm # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = yes # benchmark.variants.rev = none before: 169.190180 ~~~~~ after: 167.816681 ### data-env-vars.name = mozilla-try-2024-03-26-ds2-pnm # benchmark.name = hg.command.unbundle # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.issue6528 = default # benchmark.variants.resource-usage = default # benchmark.variants.reuse-external-delta-parent = default # benchmark.variants.revs = any-10000-extra-rev # benchmark.variants.source = unbundle # benchmark.variants.validate = default # benchmark.variants.verbosity = quiet before: 70.573063 ~~~~~ after: 70.149730 ### data-env-vars.name = mozilla-try-2024-03-26-ds2-pnm # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 2469.554928 ~~~~~ after: 2459.756854 ### data-env-vars.name = mozilla-try-2024-03-26-ds2-pnm # benchmark.name = hg.perf.unbundle # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.issue6528 = default # benchmark.variants.revs = any-10000-extra-rev # benchmark.variants.source = default before: 63.259498 ~~~~~ after: 62.934324 ### data-env-vars.name = mozilla-unified-2024-03-22-ds2-pnm # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 52.009024 ~~~~~ after: 51.021327 (-1.90%, -0.99) ### data-env-vars.name = mozilla-unified-2024-03-22-ds2-pnm # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 52.021120 ~~~~~ after: 51.187100 (-1.60%, -0.83) ### data-env-vars.name = mozilla-unified-2024-03-22-ds2-pnm # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.316214 ~~~~~ after: 0.313213 ### data-env-vars.name = mozilla-unified-2024-03-22-ds2-pnm # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.314039 ~~~~~ after: 0.309434 (-1.47%, -0.00) ### data-env-vars.name = mozilla-unified-2024-03-22-ds2-pnm # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 419.229602 ~~~~~ after: 418.731461 ### data-env-vars.name = mozilla-unified-2024-03-22-ds2-pnm # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 419.121169 ~~~~~ after: 418.893086 ### data-env-vars.name = mozilla-unified-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 52.298052 ~~~~~ after: 51.680823 (-1.18%, -0.62) ### data-env-vars.name = mozilla-unified-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 51.979719 ~~~~~ after: 50.517619 (-2.81%, -1.46) ### data-env-vars.name = mozilla-unified-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.542347 ~~~~~ after: 0.541494 ### data-env-vars.name = mozilla-unified-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.361585 ~~~~~ after: 0.359601 ### data-env-vars.name = mozilla-unified-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 424.435573 ~~~~~ after: 425.054393 ### data-env-vars.name = mozilla-unified-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 425.369579 ~~~~~ after: 424.182501 ### data-env-vars.name = netbeans-2018-08-01-ds2-pnm # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 17.169597 ~~~~~ after: 16.809620 (-2.10%, -0.36) ### data-env-vars.name = netbeans-2018-08-01-ds2-pnm # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 17.052174 ~~~~~ after: 16.873865 (-1.05%, -0.18) ### data-env-vars.name = netbeans-2018-08-01-ds2-pnm # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.300405 ~~~~~ after: 0.296493 (-1.30%, -0.00) ### data-env-vars.name = netbeans-2018-08-01-ds2-pnm # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.296907 ~~~~~ after: 0.291884 (-1.69%, -0.01) ### data-env-vars.name = netbeans-2018-08-01-ds2-pnm # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 76.353166 ~~~~~ after: 76.315550 ### data-env-vars.name = netbeans-2018-08-01-ds2-pnm # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 76.304418 ~~~~~ after: 76.314896 ### data-env-vars.name = netbeans-2018-08-01-ds2-pnm # benchmark.name = hg.perf.unbundle # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.issue6528 = default # benchmark.variants.revs = any-10000-extra-rev # benchmark.variants.source = default before: 41.448226 ~~~~~ after: 39.696075 (-4.23%, -1.75) ### data-env-vars.name = netbeans-2018-08-01-ds2-pnm # benchmark.name = hg.perf.unbundle # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.issue6528 = default # benchmark.variants.revs = any-10000-extra-rev # benchmark.variants.source = default before: 41.489911 ~~~~~ after: 40.213760 (-3.08%, -1.28) ### data-env-vars.name = netbeans-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 17.276211 ~~~~~ after: 16.934238 (-1.98%, -0.34) ### data-env-vars.name = netbeans-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 17.275566 ~~~~~ after: 17.151560 ### data-env-vars.name = netbeans-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.363647 ~~~~~ after: 0.364217 ### data-env-vars.name = netbeans-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.292249 ~~~~~ after: 0.293737 ### data-env-vars.name = netbeans-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 77.242740 ~~~~~ after: 77.165247 ### data-env-vars.name = netbeans-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 77.189009 ~~~~~ after: 77.153971 ### data-env-vars.name = netbeans-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.perf.unbundle # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.issue6528 = default # benchmark.variants.revs = any-10000-extra-rev # benchmark.variants.source = default before: 40.341299 ~~~~~ after: 40.604985 ### data-env-vars.name = netbeans-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.perf.unbundle # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.issue6528 = default # benchmark.variants.revs = any-10000-extra-rev # benchmark.variants.source = default before: 40.585503 ~~~~~ after: 40.820806 ### data-env-vars.name = netbeans-2019-11-07-ds2-pnm # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 17.515332 ~~~~~ after: 17.190762 (-1.85%, -0.32) ### data-env-vars.name = netbeans-2019-11-07-ds2-pnm # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 17.343596 ~~~~~ after: 17.050369 (-1.69%, -0.29) ### data-env-vars.name = netbeans-2019-11-07-ds2-pnm # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.316108 ~~~~~ after: 0.315292 ### data-env-vars.name = netbeans-2019-11-07-ds2-pnm # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.311521 ~~~~~ after: 0.307919 (-1.16%, -0.00) ### data-env-vars.name = netbeans-2019-11-07-ds2-pnm # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 80.169792 ~~~~~ after: 80.090093 ### data-env-vars.name = netbeans-2019-11-07-ds2-pnm # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 80.168257 ~~~~~ after: 80.203922 ### data-env-vars.name = netbeans-2019-11-07-zstd-sparse-revlog # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 17.471723 ~~~~~ after: 17.104498 (-2.10%, -0.37) ### data-env-vars.name = netbeans-2019-11-07-zstd-sparse-revlog # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 17.351268 ~~~~~ after: 17.039244 (-1.80%, -0.31) ### data-env-vars.name = netbeans-2019-11-07-zstd-sparse-revlog # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.379920 ~~~~~ after: 0.380529 ### data-env-vars.name = netbeans-2019-11-07-zstd-sparse-revlog # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.306940 ~~~~~ after: 0.308172 ### data-env-vars.name = netbeans-2019-11-07-zstd-sparse-revlog # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 81.143787 ~~~~~ after: 81.205227 ### data-env-vars.name = netbeans-2019-11-07-zstd-sparse-revlog # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 81.208757 ~~~~~ after: 81.201285 ### data-env-vars.name = pypy-2018-08-01-ds2-pnm # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 1.409354 ~~~~~ after: 1.384783 (-1.74%, -0.02) ### data-env-vars.name = pypy-2018-08-01-ds2-pnm # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 1.395327 ~~~~~ after: 1.379295 (-1.15%, -0.02) ### data-env-vars.name = pypy-2018-08-01-ds2-pnm # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.305516 ~~~~~ after: 0.301302 (-1.38%, -0.00) ### data-env-vars.name = pypy-2018-08-01-ds2-pnm # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.300681 ~~~~~ after: 0.296424 (-1.42%, -0.00) ### data-env-vars.name = pypy-2018-08-01-ds2-pnm # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 1.228350 ~~~~~ after: 1.225184 ### data-env-vars.name = pypy-2018-08-01-ds2-pnm # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 1.227250 ~~~~~ after: 1.226652 ### data-env-vars.name = pypy-2018-08-01-ds2-pnm # benchmark.name = hg.perf.unbundle # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.issue6528 = default # benchmark.variants.revs = any-10000-extra-rev # benchmark.variants.source = default before: 10.441251 ~~~~~ after: 10.233845 (-1.99%, -0.21) ### data-env-vars.name = pypy-2018-08-01-ds2-pnm # benchmark.name = hg.perf.unbundle # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.issue6528 = default # benchmark.variants.revs = any-10000-extra-rev # benchmark.variants.source = default before: 10.477187 ~~~~~ after: 10.518723 ### data-env-vars.name = pypy-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 1.406229 ~~~~~ after: 1.383834 (-1.59%, -0.02) ### data-env-vars.name = pypy-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 1.404700 ~~~~~ after: 1.386296 (-1.31%, -0.02) ### data-env-vars.name = pypy-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.303247 ~~~~~ after: 0.304695 ### data-env-vars.name = pypy-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.295575 ~~~~~ after: 0.294873 ### data-env-vars.name = pypy-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 1.614998 ~~~~~ after: 1.619019 ### data-env-vars.name = pypy-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 1.608089 ~~~~~ after: 1.613761 ### data-env-vars.name = pypy-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.perf.unbundle # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.issue6528 = default # benchmark.variants.revs = any-10000-extra-rev # benchmark.variants.source = default before: 10.494740 ~~~~~ after: 10.183642 (-2.96%, -0.31) ### data-env-vars.name = pypy-2018-08-01-zstd-sparse-revlog # benchmark.name = hg.perf.unbundle # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.issue6528 = default # benchmark.variants.revs = any-10000-extra-rev # benchmark.variants.source = default before: 10.153362 ~~~~~ after: 10.208118 ### data-env-vars.name = pypy-2024-03-22-ds2-pnm # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 1.613760 ~~~~~ after: 1.595667 (-1.12%, -0.02) ### data-env-vars.name = pypy-2024-03-22-ds2-pnm # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 1.601770 ~~~~~ after: 1.589591 ### data-env-vars.name = pypy-2024-03-22-ds2-pnm # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.300656 ~~~~~ after: 0.299511 ### data-env-vars.name = pypy-2024-03-22-ds2-pnm # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.298116 ~~~~~ after: 0.34f44a ### data-env-vars.name = pypy-2024-03-22-ds2-pnm # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 1.451637 ~~~~~ after: 1.449828 ### data-env-vars.name = pypy-2024-03-22-ds2-pnm # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 1.447463 ~~~~~ after: 1.447144 ### data-env-vars.name = pypy-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 1.618347 ~~~~~ after: 1.593819 (-1.52%, -0.02) ### data-env-vars.name = pypy-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 1.610104 ~~~~~ after: 1.591181 (-1.18%, -0.02) ### data-env-vars.name = pypy-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.299082 ~~~~~ after: 0.302411 (+1.11%, +0.00) ### data-env-vars.name = pypy-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.294385 ~~~~~ after: 0.294103 ### data-env-vars.name = pypy-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 1.896348 ~~~~~ after: 1.892661 ### data-env-vars.name = pypy-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 1.897075 ~~~~~ after: 1.896864 ### data-env-vars.name = tryton-public-2024-03-22-ds2-pnm # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 1.823667 ~~~~~ after: 1.791246 (-1.78%, -0.03) ### data-env-vars.name = tryton-public-2024-03-22-ds2-pnm # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 1.820555 ~~~~~ after: 1.765854 (-3.00%, -0.05) ### data-env-vars.name = tryton-public-2024-03-22-ds2-pnm # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.340665 ~~~~~ after: 0.336729 (-1.16%, -0.00) ### data-env-vars.name = tryton-public-2024-03-22-ds2-pnm # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.335204 ~~~~~ after: 0.333865 ### data-env-vars.name = tryton-public-2024-03-22-ds2-pnm # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 0.262541 ~~~~~ after: 0.261794 ### data-env-vars.name = tryton-public-2024-03-22-ds2-pnm # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 0.261495 ~~~~~ after: 0.260879 ### data-env-vars.name = tryton-public-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 1.856138 ~~~~~ after: 1.784902 (-3.84%, -0.07) ### data-env-vars.name = tryton-public-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.command.cat # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.files = all-root # benchmark.variants.output = plain # benchmark.variants.rev = tip before: 1.811432 ~~~~~ after: 1.782845 (-1.58%, -0.03) ### data-env-vars.name = tryton-public-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.343215 ~~~~~ after: 0.341859 ### data-env-vars.name = tryton-public-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.command.log # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.limit-rev = 1000 # benchmark.variants.patch = no # benchmark.variants.rev = none before: 0.332617 ~~~~~ after: 0.331202 ### data-env-vars.name = tryton-public-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rhg # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 0.590326 ~~~~~ after: 0.590407 ### data-env-vars.name = tryton-public-2024-03-22-zstd-sparse-revlog # benchmark.name = hg.perf.read-revisions # bin-env-vars.hg.flavor = rust # bin-env-vars.hg.py-re2-module = default # benchmark.variants.order = default # benchmark.variants.revlog = manifestlog before: 0.589567 ~~~~~ after: 0.588821 ```
-
- Jan 06, 2025
-
-
Raphaël Gomès authored
This is a small module and the only one left that needs to know about the index. Building the conversion machinery would have taken longer and have been more dangerous.
-
- Jan 05, 2025
-
-
Raphaël Gomès authored
This is the equivalent of what we did in `convert_cpython`, but with fewer steps, since we don't have to do the convertion/checking from cpython to pyo3 anymore. This will be used in the next changeset when plugging everything in.
-
Raphaël Gomès authored
This is going to be needed for the ancestors module once we switch over to the pyo3 innerrevlog
-
- Jan 07, 2025
-
-
Raphaël Gomès authored
-
- Jan 05, 2025
-
-
Raphaël Gomès authored
-
Raphaël Gomès authored
-
- Jan 03, 2025
-
-
Raphaël Gomès authored
-
Raphaël Gomès authored
This mirrors the one in hg-cpython, explanations inline.
-