- Feb 22, 2025
-
-
Pierre-Yves David authored
Now that all user has been removed, we can safely drop them.
-
Pierre-Yves David authored
Same rational the parent changesets.
-
Pierre-Yves David authored
Same rational as the parent changeset.
-
Pierre-Yves David authored
Same rational as the parent changeset.
-
Pierre-Yves David authored
This is a follow up to e6069f84abbb. It turns about that there are multiple test condition that needs cleanup. This handle the usage of the first one.
-
- Feb 20, 2025
-
-
Matt Harbison authored
Windows can't typically invoke `*.py` directly as a command, and will instead show a prompt asking what program should be used to open the file. We can't directly invoke the interpreter as is usually done in this case, because the whole point is to run something not in `PATH`. The easiest thing to do is invoke a *.bat file that runs the interpreter. We can get away with this because the current implementation is to effectively run `cmd.exe /c %command%`, which doesn't need the file extension specified.
-
- Feb 19, 2025
-
-
Pierre-Yves David authored
See inline document for details.
-
- Feb 03, 2023
-
-
Pierre-Yves David authored
This is a generalisation of the new feature from evolve but for any diff, it allow to compares changes to patches regardless of the changes introduced by ancestors, this is typically useful after rebase and graft. I am not very happy about the name, but it is still experimental, so that can be improved later. Having the ability to compare ranges of commit would probably be handy too, but this changeset focus in getting the basic case in. We have to think about the UI a bit ahead however.
-
- Feb 07, 2025
-
-
Mitchell Kember authored
This adds support to rhg annotate for all the whitespace options: -w, --ignore-all-space -b, --ignore-space-change -B, --ignore-blank-lines -Z, --ignore-space-at-eol Note that --ignore-blank-lines has no effect on annotate so it is ignored. You can see this in dagop.py _annotepair which only checks if blocks are '=' or not, whereas the effect of --ignore-blank-lines is to change some '!' into '~'. When the other 3 are combined, we use the strongest option since -w implies -b and -b implies -Z. This is not explicit in the Python implementation, but I have verified that's how it behaves.
-
- Feb 12, 2025
-
-
Mitchell Kember authored
This was missing from the whitespace option testing in test-annotate.t. I changed the "a" file contents a bit to make the output different from the other whitespace flags.
-
- Feb 18, 2025
-
-
Pierre-Yves David authored
-
Pierre-Yves David authored
The code was calling `_set_identity` in too many places, resulting in fetching cache information after reading the on disk data. This could result in old data labelled with the identity of new, never loaded data. Fixing it solve the issue spotted in the previous changesets. Further cleanup are warranted but it seems more reasonable to do them on stable.
-
Pierre-Yves David authored
This was giving the wrong output in the `dirstate-v2-rewrite` case. As the dirstate is rewritten, the data file is missing and we reload the full dirstate. The make the dirstate reloaded after the commit and it no longer see the file as dirty. Note that if we were deleting the data file less aggressively, we would see the other output. (for example if we were keeping old data file around for some time before deletion). One last thing… fixing this reveal a quite serious bug where a `hg status` end up overwriting a `hg update` done concurrently. Hooray for proper testing.
-
Pierre-Yves David authored
`#if dirstate-v2` is always false, because `dirstate-v2` is not one of the test cases. So we fix the conditionnal and adjust the expected matching. This highlight that the rhg/no-rhg output differ because an issue in the code. We will fix that in the next changeset.
-
Pierre-Yves David authored
We are going to fix a bug in the test framework, that will reveal a fairly serious bug with the Rust code. So we update the test before hand for clarity.
-
Julien Cristau authored
stream bundle specs specify requirements, but we were ignoring this when selecting which bundle to apply, causing spurious clone failures.
-
- Feb 17, 2025
-
-
Pierre Augier authored
-
- Jan 27, 2025
-
-
Pierre-Yves David authored
This mechanism limit the read-aheadto avoid uncontrolled memory usage. Note that the memory target is not a hard limit and that mercurial will use more memory that specified in some cases, but "not too much more". The current implementation focus on "simplicity" and could be more efficient. However this provide a "safe" baseline for the feature. Now that the overall shape of the feature is here we can start making it faster. Here is more benchmark of how everything slows down. The next series will focus on optimizing this code path to actually speeds things up. ### benchmark.name = hg.perf.exchange.stream.consume # bin-env-vars.hg.flavor = default # bin-env-vars.hg.py-re2-module = default # benchmark.variants.memory-target = default # benchmark.variants.num-writer = default # benchmark.variants.parallel-processing = yes # benchmark.variants.progress = no # benchmark.variants.read-from-memory = yes # benchmark.variants.version = v2 ## data-env-vars.name = heptapod-public-2024-03-25-zstd-sparse-revlog no-thread: 7.244015 ~~~~~ write-thread: 9.128669 (+26.02%, +1.88) read-thread: 9.387256 (+29.59%, +2.14) mem-target: 9.901032 (+36.68%, +2.66) ## data-env-vars.name = mercurial-public-2024-03-22-zstd-sparse-revlog no-thread: 0.249693 ~~~~~ write-thread: 0.275081 (+10.17%, +0.03) read-thread: 0.292601 (+17.18%, +0.04) mem-target: 0.305973 (+22.54%, +0.06) ## data-env-vars.name = netbeans-2019-11-07-zstd-sparse-revlog no-thread: 13.136674 ~~~~~ write-thread: 16.374306 (+24.65%, +3.24) read-thread: 17.008865 (+29.48%, +3.87) mem-target: 18.467590 (+40.58%, +5.33) ## data-env-vars.name = netbsd-xsrc-all-2024-09-19-zstd-sparse-revlog no-thread: 5.317709 ~~~~~ write-thread: 6.783031 (+27.56%, +1.47) read-thread: 7.107141 (+33.65%, +1.79) mem-target: 7.338505 (+38.00%, +2.02) ## data-env-vars.name = netbsd-xsrc-draft-2024-09-19-zstd-sparse-revlog no-thread: 5.398368 ~~~~~ write-thread: 6.737864 (+24.81%, +1.34) read-thread: 7.163505 (+32.70%, +1.77) mem-target: 7.333354 (+35.84%, +1.93) ## data-env-vars.name = pypy-2024-03-22-zstd-sparse-revlog no-thread: 3.acbb55 ~~~~~ write-thread: 3.758324 (+22.48%, +0.69) read-thread: 3.907693 (+27.34%, +0.84) mem-target: 4.238172 (+38.11%, +1.17) ## data-env-vars.name = mozilla-central-2024-03-22-zstd-sparse-revlog no-thread: 51.934795 ~~~~~ write-thread: 66.561340 (+28.16%, +14.63) read-thread: 66.902619 (+28.82%, +14.97) mem-target: 78.194540 (+50.56%, +26.26) ## data-env-vars.name = mozilla-unified-2024-03-22-zstd-sparse-revlog # benchmark.variants.read-from-memory = yes no-thread: 52.253858 ~~~~~ write-thread: 66.955037 (+28.13%, +14.70) read-thread: 66.397609 (+27.07%, +14.14) mem-target: 77.492938 (+48.30%, +25.24) ## data-env-vars.name = mozilla-try-2024-03-26-zstd-sparse-revlog # benchmark.variants.read-from-memory = no no-thread: 130.584329 ~~~~~ write-thread: 138.770454 (+6.27%, +8.19) read-thread: 145.137477 (+11.14%, +14.55) mem-target: 164.366925 (+25.87%, +33.78)
-
- Jan 21, 2025
-
-
Pierre-Yves David authored
The reader thread just want to iterate over chunk, so let it do just that. This avoid some silly layer of filechunkiter and chunk buffer. Before this change, we had the following layers: bundle2part (iterator of chunks) → chunkbuffer (iterator of chunks to file-like) → filechunkiter (file-like to chunkgs) → _DataQueue (thread safe iterator of chunks) → chunkbuffer (iterator of chunks to file-like). We now have removed the first layer of chunkbuffer + filechunkiter: bundle2part (iterator of chunks) → _DataQueue (thread safe iterator of chunks) → chunkbuffer (iterator of chunks to file-like). This fix the output order change that was previously introduced.
-
- Jan 20, 2025
-
-
Pierre-Yves David authored
We could do useful thing while waiting for data, so we introduce another thread dedicated to reading the bundle data and pass them to the thread parsing the bundle. This has a small impact on test output because the bundle part is consumed at a different time. However this will be smoothed out very soon so lets ignore that for now. As for the previous patch, the speed up in not there yet. We need to adjust various part of the implementation to see some benefit. However, this put the generic architecture in place so that we can focus on performance later. Below are some benchmark result to highlight the slowdown. ### benchmark.name = hg.perf.exchange.stream.consume # bin-env-vars.hg.flavor = default # bin-env-vars.hg.py-re2-module = default # benchmark.variants.memory-target = default # benchmark.variants.num-writer = default # benchmark.variants.parallel-processing = yes # benchmark.variants.progress = no # benchmark.variants.read-from-memory = yes # benchmark.variants.version = v2 ## data-env-vars.name = heptapod-public-2024-03-25-zstd-sparse-revlog no-thread: 7.244015 ~~~~~ write-thread: 9.128669 (+26.02%, +1.88) read-thread: 9.387256 (+29.59%, +2.14) ## data-env-vars.name = mercurial-public-2024-03-22-zstd-sparse-revlog no-thread: 0.249693 ~~~~~ write-thread: 0.275081 (+10.17%, +0.03) read-thread: 0.292601 (+17.18%, +0.04) ## data-env-vars.name = netbeans-2019-11-07-zstd-sparse-revlog no-thread: 13.136674 ~~~~~ write-thread: 16.374306 (+24.65%, +3.24) read-thread: 17.008865 (+29.48%, +3.87) ## data-env-vars.name = netbsd-xsrc-all-2024-09-19-zstd-sparse-revlog no-thread: 5.317709 ~~~~~ write-thread: 6.783031 (+27.56%, +1.47) read-thread: 7.107141 (+33.65%, +1.79) ## data-env-vars.name = netbsd-xsrc-draft-2024-09-19-zstd-sparse-revlog no-thread: 5.398368 ~~~~~ write-thread: 6.737864 (+24.81%, +1.34) read-thread: 7.163505 (+32.70%, +1.77) ## data-env-vars.name = pypy-2024-03-22-zstd-sparse-revlog no-thread: 3.acbb55 ~~~~~ write-thread: 3.758324 (+22.48%, +0.69) read-thread: 3.907693 (+27.34%, +0.84) ## data-env-vars.name = mozilla-central-2024-03-22-zstd-sparse-revlog no-thread: 51.934795 ~~~~~ write-thread: 66.561340 (+28.16%, +14.63) read-thread: 66.902619 (+28.82%, +14.97) ## data-env-vars.name = mozilla-unified-2024-03-22-zstd-sparse-revlog no-thread: 52.253858 ~~~~~ write-thread: 66.955037 (+28.13%, +14.70) read-thread: 66.397609 (+27.07%, +14.14) ## data-env-vars.name = mozilla-try-2024-03-26-zstd-sparse-revlog # benchmark.variants.read-from-memory = no no-thread: 130.584329 ~~~~~ write-thread: 138.770454 (+6.27%, +8.19) read-thread: 145.137477 (+11.14%, +14.55)
-
Pierre-Yves David authored
This could provide a significant performance boost, but various implementation details means it is currently slower. More update will help make this boost real, but here is the basic idea. The implementation in this patch is unbounded in memory which could be a problem in some situation. We will deal with that soon. There is the benchmark result showing a slower run ### benchmark.name = hg.perf.exchange.stream.consume # bin-env-vars.hg.flavor = default # bin-env-vars.hg.py-re2-module = default # benchmark.variants.parallel-processing = yes # benchmark.variants.progress = no # benchmark.variants.read-from-memory = yes # benchmark.variants.version = v2 ## data-env-vars.name = mercurial-public-2024-03-22-zstd-sparse-revlog before: 0.249693 ~~~~~ after: 0.275081 (+10.17%, +0.03) ## data-env-vars.name = netbsd-xsrc-all-2024-09-19-zstd-sparse-revlog before: 5.317709 ~~~~~ after: 6.783031 (+27.56%, +1.47) ## data-env-vars.name = netbsd-xsrc-draft-2024-09-19-zstd-sparse-revlog before: 5.398368 ~~~~~ after: 6.737864 (+24.81%, +1.34) ## data-env-vars.name = pypy-2024-03-22-zstd-sparse-revlog before: 3.acbb55 ~~~~~ after: 3.758324 (+22.48%, +0.69) ## data-env-vars.name = heptapod-public-2024-03-25-zstd-sparse-revlog before: 7.244015 ~~~~~ after: 9.128669 (+26.02%, +1.88) ## data-env-vars.name = netbeans-2019-11-07-zstd-sparse-revlog before: 13.136674 ~~~~~ after: 16.374306 (+24.65%, +3.24) ## data-env-vars.name = mozilla-unified-2024-03-22-zstd-sparse-revlog before: 52.253858 ~~~~~ after: 66.955037 (+28.13%, +14.70) ## data-env-vars.name = mozilla-central-2024-03-22-zstd-sparse-revlog before: 51.934795 ~~~~~ after: 66.561340 (+28.16%, +14.63) ## data-env-vars.name = mozilla-try-2024-03-26-zstd-sparse-revlog # benchmark.variants.read-from-memory = no before: 130.584329 ~~~~~ after: 138.770454 (+6.27%, +8.19)
-
- Feb 13, 2025
-
-
Raphaël Gomès authored
The code (especially the Rust code) was jumping in 4 dimensions to make sense of what was going on because it wrongly assumed that we needed to somehow be able to ask a generaldelta index for a non-generaldelta delta chain, which doesn't make any sense. Removing the cargo-culted/vestigial code, this is cleaner and less confusing.
-
- Feb 10, 2025
-
-
Pierre-Yves David authored
The idea of having a clear storage interface and a small extension to test it was not bad in theory. However this never materialize to anything concrete, and nobody has touched this extensions for over 6 years. So it is mainly getting in the way of other works. Incidently, the clarification of interface is seeing progress thanks to the Matt Harbison typing effort and the slow rewrite into rust of core element led by Octobus. So I suggest we drop this extension, freeing energy for other improvements.
-
Pierre-Yves David authored
The tests seems to run fine with `--rust` now ¯\_(ツ)_/¯
-
Pierre-Yves David authored
It is kind of useful to know why things happens.
-
- Jan 07, 2025
-
-
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 02, 2025
-
-
Raphaël Gomès authored
-
- Dec 25, 2024
-
-
Georges Racinet authored
This one demonstrates that why the `with_index_read` and similar helpers are useful and was actually the main motivation for doing them: if we kept the borrow used to grab the index before updating the caches, there would be a panic when calling `borrow_mut`. This was confirmed with an earlier version by the Python test. There are perhaps some internal API clarifications to be made, as the method updating the cache does a seemingly useless return), but we are keeping it as it was in `hg-cpython`.
-
- Dec 22, 2024
-
-
Georges Racinet authored
Stepping aside from the implementation of index methods to show that this will not be a problem. The test basically only demonstrates that it behaves like a context manager indeed – of course our fixture does not provide any reasonable file access.
-
Georges Racinet authored
This is the actual first usage of `PyShareable`, but perhaps it could be not so much necessary in this case (we could just reference the `InnerRevlog` python object, and we do not need to keep additional state).
-
Georges Racinet authored
-
- Dec 25, 2024
-
-
Georges Racinet authored
This brings in `append()` and `__delitem__`, and is for us the first validation of our inner mutability. In the case of `__delitem__`, there was a tricky case where we were tempted to use the higher level `PySlice::indices` API, with a possible dangerous change of behaviour. We test it carefully from the Python side.
-
Georges Racinet authored
-
Georges Racinet authored
They are rather straightforward, except for `_index_get_rev` that takes care of not initializing a nodetree on some conditions. In `_index_partialmatch`, we solve the todo that was in the `hg-cpython`, since we introduced the `py_node_for_rev` helper earlier. The new test method in `test-rust-revlog.py` provides comparison with the `hg-cpython` implementation of `InnerRevlog`.
-
- Dec 22, 2024
-
-
Georges Racinet authored
This test file was removed in 7346f93be7a4. Adaptation to the new `InnerRevlog` / `RustIndexProxy` structure was as easy as redefining the `parserustindex()` method to use `RustIndexProxy`. As we did before with `test-rust-ancestors.py`, we are preparing a mixin class that will contain tests for both bindings. Existing tests will migrate from `RustInnerRevlogTest` (the one for `hg-cpython`) to the mixin.
-
- Feb 10, 2025
-
-
Mitchell Kember authored
This fixes the problem identified in a49d6f3c971b, making hg annotate behave the same as rhg annotate.
-
- Feb 07, 2025
-
-
Mitchell Kember authored
Python hg annotate currently calls .introfilectx() and uses that for all ancestor checks. This is an unnecessary extra step, and it results in unstable output as shown in the test. It should instead behave like rhg annotate and use the starting revision passed on the command line for ancestor checks. This was discovered here: !1179 (comment 380887)
-
- Jan 24, 2025
-
-
Mitchell Kember authored
This initial implementation produces the same output as Python for all the files I've tried, and is usually 1.5-9x faster. The algorithm is mostly the same, but one key difference is that the Rust implementation only converts filelog revisions to changelog revisions if they will actually appear in the output. This does not support all the command line flags yet. In particular, --template, --include, --exclude, --skip, and whitespace-related flags will cause fallback to Python. Also, --rev 'wdir()' (often used by editor plugins) is not supported. There is also no pager.
-
- Feb 05, 2025
-
-
Mitchell Kember authored
This is based on encoding.py. It reads the environment variables HGENCODING, HGENCODINGMODE, and HGENCODINGAMBIGUOUS. Currently it only supports UTF-8 and ascii, but it could be extended to support other local encodings. Unlike Python, it assumes all internal strings are UTF-8 and does not attempt to fallback to latin-1 (or ui.fallbackencoding). Nothing is using this now, but in the future command output and error messages should transition to using it. I replaced existing calls to `utf8_to_local` and `local_to_uf8` with direct String/bytes methods since they were not logically converting between internal and local encodings. Instead, they were used (for example) when an error message happened to be stored as String but needed to be passed somewhere as bytes. The proper fix for this will be to avoid String in the first place.
-
- Feb 07, 2025
-
-
Matt Harbison authored
Supposedly, a `# noqa: F401` should be enough to ignore this warning. PyCharm is happy with the comment, but `pyflakes` ignores that. Since there's already precedent for filtering this out manually, apply that here too. The imports are done on purpose for use elsewhere in the codebase.
-