- Oct 10, 2019
-
-
Georges Racinet authored
rust-cpython converts automatically from Rust strings to the appropriate `str` for the target Python version. Insisting on discovery stats dict keys to be bytes hence breaks the process (this is spotted by test-setdiscovery.t). Now that byteify-strings has been run on the entire codebase, and the import transformer is not there any more, the simplest fix is to make the keys plain str again. Another possible fix would be to forcefully convert to bytes in rust-cpython code, but that feels less natural, and would probably have to be reverted down the road. Differential Revision: https://phab.mercurial-scm.org/D7039
-
Pierre-Yves David authored
Same as `perfhelper-pathcopies`. The previous computation `<base>::<target>` was wrong, what we actually need is `::<target> - ::<base>`. This is now fixed.
-
- Oct 02, 2019
-
-
Pierre-Yves David authored
The previous computation `<base>::<target>` was wrong, what we actually need is `::<target> - ::<base>`. This is now fixed
-
- Oct 10, 2019
-
-
Denis Laxalde authored
This fixes a crash when scrolling in curses UI when refresh() is called when a float value (namely 'self.firstlineofpadtoprint', taking its value indirectly from 'self.linesprintedtopadsofar').
-
Denis Laxalde authored
The attribute is already set a couple of lines above, in curseschunkselector.__init__().
-
Denis Laxalde authored
-
Denis Laxalde authored
This fixes test-import.t on python3. We add Generator alias in mail module to handle python2/python3 compatibility.
-
Denis Laxalde authored
Follows up on c9093ae8d6c4. It's enough to flush just before each prompt.
-
- Aug 29, 2019
-
-
Martin von Zweigbergk authored
Differential Revision: https://phab.mercurial-scm.org/D7038
-
- Oct 10, 2019
-
-
Augie Fackler authored
This code just feels complicated enough we should go ahead and give it a dedicated fuzzer: we've found bugs in similar things before. Differential Revision: https://phab.mercurial-scm.org/D7034
-
Augie Fackler authored
Not all of these are strictly fncache-related, but they all have th same signature and similar-enough behavior that we may as well fuzz them together. No obvious bugs for once, but these felt like they were just complicated enough to cover. Differential Revision: https://phab.mercurial-scm.org/D7033
-
Augie Fackler authored
Differential Revision: https://phab.mercurial-scm.org/D7032
-
Augie Fackler authored
This found a six-year-old bug immediately, and then I put it through a few CPU-days of time before sending it. Differential Revision: https://phab.mercurial-scm.org/D7031
-
- Oct 08, 2019
-
-
Augie Fackler authored
This code, introduced in 8c0a7eeda06d, was intentionally over-reading an input string to avoid getting a shared string object for a one-byte input. Unfortunately with an empty input (like in the case of a fuzzer getting started) this was a trivial over-read and triggered an AddressSanitizer failure. I went out of my way to make sure the code still does the copy-avoidance tricks. I don't think this change will cost us much performance since the one-character strings should be cached aggressively anyway. Differential Revision: https://phab.mercurial-scm.org/D7030
-
- Oct 07, 2019
-
-
Pierre-Yves David authored
This is quite useful to test this on real life data. Differential Revision: https://phab.mercurial-scm.org/D6955
-
Pierre-Yves David authored
We will need to access these logic form the copies module. So we move them from their higher level module to the lower level `copies` module. We cannot use them from their top level module as it would create cycles. Differential Revision: https://phab.mercurial-scm.org/D6954
-
- Oct 09, 2019
-
-
Pierre-Yves David authored
Repository using the new format now use changeset centric algorithm and read the copies information from the changelog sidedata. Differential Revision: https://phab.mercurial-scm.org/D6953
-
Pierre-Yves David authored
With the previous code, existing but empty value were not "decoded", leading to the method returning one of `None`, some valid value (`list` or `dict`) or `b''`. On a general basis, not explicitly checking for None is a source of bugs. Having a clean return types will help the side-data copies code in future changesets. Differential Revision: https://phab.mercurial-scm.org/D7037
-
Pierre-Yves David authored
Differential Revision: https://phab.mercurial-scm.org/D7036
-
- Oct 07, 2019
-
-
Pierre-Yves David authored
The object provide a simple way to access changelog entry, we need it to also bear the sidedata value. Since the sidedata are retrieved at the same time as the revision, we can do that without extra cost. Differential Revision: https://phab.mercurial-scm.org/D6951
-
Pierre-Yves David authored
If the format of the repository indicate it stores copies information into changeset's sidedata, then we actually write that information into sidedata at commit time. It will be put to use in later changesets. Currently, we store all field unconditionally, but that is likely to change in the future for the sake of efficiency. Differential Revision: https://phab.mercurial-scm.org/D6950
-
Pierre-Yves David authored
For now it is equivalent to the filelog case, but introducing this early helps make the comings changesets clearer. Differential Revision: https://phab.mercurial-scm.org/D6949
-
Pierre-Yves David authored
For now it is equivalent to the filelog case, but introducing this early helps make the comings changesets clearer. Differential Revision: https://phab.mercurial-scm.org/D6948
-
Pierre-Yves David authored
For now it is equivalent to the filelog case, but introducing this early helps make the comings changesets clearer. Differential Revision: https://phab.mercurial-scm.org/D6947
-
Pierre-Yves David authored
The `debugformat` and `debugupgraderepo` command now detect the requirement. (upgrade to and from are not currently possible). Differential Revision: https://phab.mercurial-scm.org/D6946
-
Pierre-Yves David authored
The end goal is to have changesets centric sidedata information stored into changelog sidedata. This make it possible to use the changeset based copy tracing algorithm on any repository without affecting hashes. The actual implementation is coming. The feature is marked as experimental (do not use in production) until we stabilise details about the format. Differential Revision: https://phab.mercurial-scm.org/D6945
-
Pierre-Yves David authored
The command has a mode to actually show the sidedata, but it wasn't documented. Differential Revision: https://phab.mercurial-scm.org/D6944
-
Pierre-Yves David authored
If the side-date feature is removed, we need to drop them. Differential Revision: https://phab.mercurial-scm.org/D6943
-
Pierre-Yves David authored
Repository can now be migrated to support sidedata. More requirements and migration will be needed to actual side-data usage. This is a step in that direction. To test the feature, we leverage the test extension. It make sure the `update` part of the side-data migration actually works. Differential Revision: https://phab.mercurial-scm.org/D6942
-
Pierre-Yves David authored
We introduce a new argument to pass a callable dealing with the side data logic. Since the side data are usually associated to higher level logic, the revlog code itself is unlikely to know that to do itself. As a result the higher level upgrade code will be responsible to decide what needs to changes. The lower level revlog.clone just get simple instructions to apply. Differential Revision: https://phab.mercurial-scm.org/D6941
-
Pierre-Yves David authored
This is necessary to exchange the flags over the wire (and within bundles). Differential Revision: https://phab.mercurial-scm.org/D6940
-
Pierre-Yves David authored
We don't currently have code to deal with exchange between repository using sidedata and repository not using sidedata. Until we implement such code (eg: dropping side data when pushing to a non-sidedata repo) we prevent the two kind of repo to speak to each other. This is somewhere similar to what 'treemanifest' does. Note that sidedata exchange is broken unless one use changegroup v3 anyway. See next changeset for details. Differential Revision: https://phab.mercurial-scm.org/D6939
-
- Oct 08, 2019
-
-
Pierre-Yves David authored
The command seems to pre-date the introduction of the `setup` support in timer. We move the line that is obviously about benchmark setup in such `setup` function.
-
Pierre-Yves David authored
-
Pierre-Yves David authored
The command seems to pre-date the introduction of the `setup` support in timer. We move the line that is obviously about benchmark setup in such `setup` function.
-
Pierre-Yves David authored
-
Pierre-Yves David authored
The command seems to pre-date the introduction of the `setup` support in timer. We move the line that is obviously about benchmark setup in such `setup` function.
-
Pierre-Yves David authored
-
Pierre-Yves David authored
The command seems to pre-date the introduction of the `setup` support in timer. We move the line that is obviously about benchmark setup in such `setup` function.
-
Pierre-Yves David authored
-