- May 27, 2022
-
-
Anton Shestakov authored
This requirement exists to make sure for hg has locate command, which is used in this test file for getting a list of files to check. Since in theory current versions of tests could be run on older hg, it doesn't hurt to mark even this version requirement (as old as it is). See also: a29f071751df.
-
- May 21, 2022
-
-
Manuel Jacob authored
The core logic for readinto() was already implemented in read(), so this is mostly extracting that code into its own method. Another fix for issue6444 was committed to the stable branch: 2fe4efaa59af. That is a minimal fix that implements readinto() only on Python versions that require readinto() (3.8.0 and 3.8.1), which is the right approach for the stable branch. However, I think that this changeset has its value. It improves performance in cases when pickle can use readinto(), it reduces code duplication compared to the other patch, and by defining readinto() on all Python versions, it makes behavior more consistent across all Python versions. This changesets reverts the other change.
-
Manuel Jacob authored
On CPython, before resizing the bytearray, all memoryviews referencing it must be released. Before this change, we ensured that all references to them were deleted. On CPython, this was enough to set the reference count to zero, which results in garbage collecting and releasing them. On PyPy, releasing the memoryviews is not necessary because they are implemented differently. If it would be necessary however, ensuring that all references are deleted would not be suffient because PyPy doesn’t use reference counting. By using with statements that take care of releasing the memoryviews, we ensure that the bytearray is resizable without relying on implementation details. So while this doesn’t fix any observable bug, it increases compatiblity with other and future Python implementations.
-
Manuel Jacob authored
-
Manuel Jacob authored
-
- May 17, 2022
-
-
Pierre-Yves David authored
We tried a `hg bundle --base ':(tip^)' --rev 'all()'` on a large repository and it spent 3 minutes on this 2 list comprehensions. This change remove this cost. There are still a lot of low hanging fruits as the command still take 30 seconds. However this is a trivial patch with a massive speedup so I'll just sent it.
-
- May 20, 2022
-
-
Pierre-Yves David authored
See command documentation for details. For some reason, pytype is confused by our usage of None/deltainfo variable, so I had to quiet it.
-
- May 19, 2022
-
-
Pierre-Yves David authored
This provide a way to enable the code introduced in the previous changeset. This will provide a large amount of output when applying a bundle with details about each delta "computation".
-
Pierre-Yves David authored
I have been looking into performance issue around pull and getting more information about the computation and time involved into applying each revision is very useful. There will be various way to use this new output, so I am introducing the code first.
-
- Apr 21, 2022
-
-
Pierre-Yves David authored
This got changed at some point.
-
- May 25, 2022
-
-
Manuel Jacob authored
13dfad0f9f7a merged stable into default, but accidentally added the _blockingreader class from stable (but deindented) instead of merging the changes from stable (2fe4efaa59af) into the existing _blockingreader class. This resulted in the _blockingreader being there two times.
-
- May 18, 2022
-
-
Pierre-Yves David authored
See inline comment for details, this is a case where the delta is neither against p1 or p2, Yet it is still a simple delta part of a simple chain. We now display them as `skip1/skip2` instead of `other`.
-
Pierre-Yves David authored
So that one can understand what is displayed by the command.
-
Pierre-Yves David authored
Looking at the parents is a common need when trying to understanding why a delta was chosen, having it readily available helps a lot.
-
Pierre-Yves David authored
We mostly care about generaldelta happening, the exact details of storage size variation is not really important so we can glob it instead of having multiple lines for each variances. This will make updating the output of the command simpler.
-
Pierre-Yves David authored
This is more robust and easier to read
-
Pierre-Yves David authored
Snapshot are expected to be healthy behavior, while "other" is a bit more suspicious. So we distinct between the two to make it easier to inspect repositories.
-
- May 25, 2022
-
-
Raphaël Gomès authored
-
- May 24, 2022
-
-
Pierre-Yves David authored
Introduce a first basic template to try the feature.
-
Pierre-Yves David authored
Before this, multiple jobs could search the list at the same time and pick the same free channel. We now project this search/assignment with a simple lock.
-
Pierre-Yves David authored
Sending the message about the test being "done" signals to the main thread that a new test can be started. Before this changeset, we sent this signal before freeing the channel, there is room for a race condition where a new test would search for a channel before the old test freed the one it used. This is an example of the failure it would produce: https://foss.heptapod.net/mercurial/mercurial-devel/-/jobs/552404
-
Pierre-Yves David authored
The next patch will do something equivalent, so lets do the change in an independant changeset first in case we need to bisect something in the future.
-
Anton Shestakov authored
From https://docs.python.org/3.8/c-api/arg.html#numbers : i (int) [int] Convert a Python integer to a plain C int. I (int) [unsigned int] Convert a Python integer to a C unsigned int, without overflow checking.
-
- May 17, 2022
-
-
Anton Shestakov authored
The issue says gcc warns that the data types don't match. I couldn't reproduce the warning locally for some reason, but this patch shouldn't break things. Maybe %lu was simply a copy-paste error from 6b1eae313b2f (https://phab.mercurial-scm.org/D10625).
-
- May 22, 2022
-
-
Arseniy Alekseyev authored
returning a valid entry for nullrev fix chain that delta against nullrev.
-
Arseniy Alekseyev authored
We are witnessing a crash in the rust code, so we lets make sure this case is tested.
-
- May 17, 2022
-
-
Matt Harbison authored
Python 3.8.0 is the latest I can load on Ubuntu 18.04, and I regularly hit the TypeError because this function is missing. While it can be avoided by disabling worker usage via config option, that's a bit obscure. I'm limiting the function definition to the narrow range of affected pythons because there were other bugs in this area that were worked around, that I don't fully understand. See the bug report for discussions on why the narrow range, and related commits working around other bugs. Differential Revision: https://phab.mercurial-scm.org/D12627
-
- Apr 06, 2021
-
-
Pierre-Yves David authored
The error now do more than stating what it need. It also state what it got.
-
Pierre-Yves David authored
In the case where tree manifest is not enabled but we still receive an sub directory information for the manifest. The error now inform which sub-directory was passed.
-
- May 04, 2022
-
-
Anton Shestakov authored
The idea and rationale is similar to https://phab.mercurial-scm.org/D12599 (landed as 1b6e381521c5). Differential Revision: https://phab.mercurial-scm.org/D12622
-
Anton Shestakov authored
The idea and rationale is similar to https://phab.mercurial-scm.org/D12599 (landed as 1b6e381521c5). Differential Revision: https://phab.mercurial-scm.org/D12621
-
- May 13, 2022
-
-
Pierre-Yves David authored
This is cleaner and safer. The previous code date from long before we had context manager available.
-
- Apr 05, 2022
-
-
Pierre-Yves David authored
This seems like a fine default behavior for now. If some users wants something more aggressive we can make the behavior configurable in the future. Differential Revision: https://phab.mercurial-scm.org/D12619
-
Pierre-Yves David authored
This show the current behavior when the repository to auto-upgrade is already locked. The current behavior is to abort, which is probably not great. Now that we have a proper test, we can think about the behavior we wants in a later tests. Differential Revision: https://phab.mercurial-scm.org/D12618
-
Pierre-Yves David authored
This make the utility more useful, for example to wait on a lock file. We also add an explicit -L check since the lock are "weird" symlink. Differential Revision: https://phab.mercurial-scm.org/D12617
-
Pierre-Yves David authored
The existing prompt mode simply release the lock immediately in non-interactive mode. That is quite useless in the test so now the non-interactive mode simply wait for a signal. Differential Revision: https://phab.mercurial-scm.org/D12616
-
Pierre-Yves David authored
This show the current behavior when the repository is unlockable. The current behavior is to abort, which is probably not great. Now that we have a proper test, we can think about the behavior we want in a later changeset. Differential Revision: https://phab.mercurial-scm.org/D12615
-
- Mar 22, 2022
-
-
Pierre-Yves David authored
This is similar to what we introduced for `share-safe`, but apply to the tracked-hint feature. Differential Revision: https://phab.mercurial-scm.org/D12614
-
- Apr 05, 2022
-
-
Pierre-Yves David authored
This is similar to what we introduced for `share-safe`, but apply to the tracked-hint feature. Differential Revision: https://phab.mercurial-scm.org/D12613
-
- Apr 04, 2022
-
-
Pierre-Yves David authored
The logic for automatic-upgrade and the upgrade-repo should be able to use the same code. However that code often need an UpgradeOperation object to function. So we start spliting the Operation into a minimal component that we will be able to reuse outside of the "classic" upgrade path. We will put the base-class to use in the next changeset. Differential Revision: https://phab.mercurial-scm.org/D12612
-