- Sep 01, 2022
-
-
Raphaël Gomès authored
-
Pierre-Yves David authored
If the data file change during the transaction, we cannot truncate it. The content of the file itself is fine as it will get backed up at the same time as the docket. Leaving the trailing data at the end of failed transaction is fine. The dirstate-v2 format supports it. The dead data will simply we written over if necessary.
-
- Aug 30, 2022
-
-
Raphaël Gomès authored
On top of fixing fsmonitor, it moves one more "old API" use to the new one. This needs very verbose code to save a few function calls that are very expensive in Python.
-
- Aug 31, 2022
-
-
Pierre-Yves David authored
If we backup of the docket, without doing a backup of the data file, we highly risk restoring a docket pointing to a missing file in the future. So we now backup the data-file alongside the docket.
-
Pierre-Yves David authored
If we backup the dirstate without the data file, we can end up in an inconsistent state of the transaction is rolled back.
-
Pierre-Yves David authored
It looks like we were doing one `cd ..` too many.
-
- Aug 29, 2022
-
-
Raphaël Gomès authored
This change adds a test for this fix as well as an additional test case that was useful in debugging this behavior.
-
- Aug 30, 2022
-
-
Arseniy Alekseyev authored
A different way of making sure the path is not interpreted as a URL is to never give this path to [tar], instead making tar read from stdin.
-
- Aug 25, 2022
-
-
Arseniy Alekseyev authored
-
- Aug 26, 2022
-
-
Arseniy Alekseyev authored
The problem was that the reaction to the signal was racing against the completion of the command. Since reaction to the signal is to print a line of warning, we can fix this by waiting for that warning to appear before allowing the command to complete.
-
- Jul 20, 2022
-
-
Gregory Szorc authored
Sometime in the 6.2 release cycle the Windows building automation broke. Building the wheel and even PyOxidizer based installers now fails with: ``` Exception: PowerShell execution failed: error: subprocess-exited-with-error Getting requirements to build wheel did not run successfully. exit code: 1 [1 lines of output] Unable to find a working hg binary to extract the version from the repository tags [end of output] note: This error originates from a subprocess, and is likely not a problem with pip. ``` I have a hunch this is a regression from upgrading pip in 1c00777702da, but I haven't verified this. It may not be, as PyOxidizer has its own bundled Python/pip. So maybe it is something in `setup.py`.
-
- Jul 17, 2022
-
-
Gregory Szorc authored
-
- Jun 04, 2022
-
-
Gregory Szorc authored
Let's keep our Windows build environment modern by upgrading to the latest OS. As part of the upgrade, we pick up a migration to EC2Launch Version 2. This has a different config mechanism. So we need to port how we manage the administrator password. As part of migrating to the new YAML/JSON config file mechanism, we move the code to the powershell script that is run when the instance first launches. This ensures that the config is retained during the reboot we perform as part of building the Windows AMI. The motivation for this is I'm currently unable to build the Windows 2019 AMI due to an issue installing OpenSSH. This _just works_ on Windows Server 2022. I have no clue what the root cause is. I think it might have something to do with Microsoft not publishing the files in the right location. Differential Revision: https://phab.mercurial-scm.org/D12630
-
Gregory Szorc authored
I'm hitting errors installing the old version of cffi due to an apparent issue where older versions of cffi aren't compatible with the modern Clang I'm using. So let's upgrade packages to unbreak things and to keep things modern. Differential Revision: https://phab.mercurial-scm.org/D12629
-
- Aug 17, 2022
-
-
Raphaël Gomès authored
This fixes the behavior of `hg purge` removing empty ignored directory even without `--all` or `--ignored`.
-
- Aug 05, 2022
-
-
Arseniy Alekseyev authored
Apparently the rust code path removes ignored directories even though the pure code path doesn't. Show this in tests.
-
- Jul 11, 2022
-
-
kiilerix authored
The merge in 12adf8c695ed had conflicts in rust/Cargo.lock and rust/hg-core/Cargo.toml . Let's ignore rust/Cargo.lock - it is regenerated. For rust/hg-core/Cargo.toml, stable had dd6b67d5c256 "rust: fix unsound `OwningDirstateMap`" which introduced ouroboros (and dropped stable_deref_trait). Default had ec8d9b5a5e7c "rust-hg-core: upgrade dependencies" which had a lot of churn bumping minimum versions - also patch versions. It is indeed a good idea to bump to *allow* use of latest package. That means that major versions should be bumped for packages after 1.0, and for packages below 1.0 minor versions should be bumped too. But it doesn't work to try enforce a policy of using latest patch by bumping versions at arbitrary times. For good or bad, the merge doesn't seem to have resolved the conflicts correctly, and many of the minor "upgrade dependencies" were lost again. Unfortunately, it also lost the bump of memmap2 to 0.5.3, which is needed for Fedora packaging where 0.4 isn't available. Same with micro-timer bump to 0.4 (which already is used in rhg). crossbeam-channel bump was also lost. This change fixes that regression by redoing these "important" lines of the merge "correctly". I propose this for stable, even though dependency changes on stable branches are annoying.
-
- Jul 28, 2022
-
-
Raphaël Gomès authored
-
Raphaël Gomès authored
-
- Jul 27, 2022
-
-
Pierre-Yves David authored
-
- Jul 26, 2022
-
-
Pierre-Yves David authored
This is now associated with each request.
-
Pierre-Yves David authored
This code was previously confused by case where: `heads_common == {nullid}`
-
Pierre-Yves David authored
This is a useful case to consider, so we should not abort in this case. A warning is still issued.
-
Pierre-Yves David authored
We where not counting the right amount of request before.
-
Pierre-Yves David authored
This is useful to understand the algorithm.
-
Pierre-Yves David authored
Before this change using `--remote-as-revs` with `--old` had no effect and everything was considered as "common", which is really not what we intended.
-
Pierre-Yves David authored
The second option should be `--remote-…` as we just talked about `--local-…` already.
-
- Jul 19, 2022
-
-
Matt Harbison authored
I'm told the new dulwich avoids hg-git test failures.
-
Matt Harbison authored
When challenged for a network password, this would spew on Windows before it actually used the stored password: ``` Error initializing plugin EntryPoint(name='libsecret', value='keyring.backends.libsecret', group='keyring.backends'). Traceback (most recent call last): File "keyring.backend", line 198, in _load_plugins init_func = ep.load() File "importlib.metadata", line 77, in load module = import_module(match.group('module')) File "importlib", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1030, in _gcd_import File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked ModuleNotFoundError: No module named 'keyring.backends.libsecret' Error initializing plugin EntryPoint(name='macOS', value='keyring.backends.macOS', group='keyring.backends'). Traceback (most recent call last): File "keyring.backend", line 198, in _load_plugins init_func = ep.load() File "importlib.metadata", line 77, in load module = import_module(match.group('module')) File "importlib", line 127, in import_module return _bootstrap._gcd_import(name[level:], package, level) File "<frozen importlib._bootstrap>", line 1030, in _gcd_import File "<frozen importlib._bootstrap>", line 1007, in _find_and_load File "<frozen importlib._bootstrap>", line 984, in _find_and_load_unlocked ModuleNotFoundError: No module named 'keyring.backends.macOS' ``` We're kinda threading a needle here because the next version of `keyring` (currently at 23.7.0) requires `importlib-metadata` 3.6+, which PyOxidizer 0.22 doesn't support[1]. [1] https://github.com/indygreg/PyOxidizer/issues/609
-
Georges Racinet authored
Apparently the standard for them is still to use byte strings. Found while looking at something else
-
- Jul 13, 2022
-
-
Ondřej Pohořelský authored
The previous attribute was python 3.6+, but guarded a python 3.7+ block Using the correct attribute avoids: + File "/tmp/hgtests.bc0_uk2d/install/lib/python/mercurial/sslutil.py", line 577, in wrapserversocket + sslcontext.minimum_version = ssl.TLSVersion.TLSv1_1 + AttributeError: module 'ssl' has no attribute 'TLSVersion'
-
- Jul 12, 2022
-
-
Mathias De Mare authored
The previous attribute was python 3.6+, but guarded a python 3.7+ block. Using the correct attribute avoids: File "/usr/lib64/python3.6/site-packages/mercurial/sslutil.py", line 334, in wrapsocket sslcontext.minimum_version = ssl.TLSVersion.TLSv1_1 AttributeError: module 'ssl' has no attribute 'TLSVersion'
-
- Jul 06, 2022
-
-
Anton Shestakov authored
-
- Jul 04, 2022
-
-
Anton Shestakov authored
Since nothing else in hgext/git supports copies yet, the best I can do is avoid TypeError: set_tracked() got an unexpected keyword argument 'reset_copy'.
-
Anton Shestakov authored
-
- Jul 11, 2022
-
-
Raphaël Gomès authored
-
Raphaël Gomès authored
-
- Jul 10, 2022
-
-
Manuel Jacob authored
In make_line_buffered(), we don’t want to wrap the stream if we know that lines get flushed to the underlying raw stream already. Previously, the heuristic was too optimistic. It assumed that any stream which is not an instance of io.BufferedIOBase doesn’t need wrapping. However, there are buffered streams that aren’t instances of io.BufferedIOBase, like Mercurial’s own winstdout. The new logic is different in two ways: First, only for the check, if unwraps any combination of WriteAllWrapper and winstdout. Second, it skips wrapping the stream only if it is an instance of io.RawIOBase (or already wrapped). If it is an instance of io.BufferedIOBase, it gets wrapped. In any other case, the function raises an exception. This ensures that, if an unknown stream is passed or we add another wrapper in the future, we don’t wrap the stream if it’s already line buffered or not wrap the stream if it’s not line buffered. In fact, this was already helpful during development of this change. Without it, I possibly would have forgot that WriteAllWrapper needs to be ignored for the check, leading to unnecessary wrapping if stdout is unbuffered. The alternative would have been to always wrap unknown streams. However, I don’t think that anyone would benefit from being less strict. We can expect streams from the standard library to be subclassing either io.RawIOBase or io.BufferedIOBase, so running Mercurial in the standard way should not regress by this change. Py2exe might replace sys.stdout and sys.stderr, but that currently breaks Mercurial anyway and also these streams don’t claim to be interactive, so this function is not called for them.
-
- Jul 05, 2022
-
-
Pierre-Yves David authored
In Python 3, the type are no longer comparable and this expose the error.
-
- May 25, 2022
-
-
Raphaël Gomès authored
This makes trace output *really* noisy and is only useful in case you want to take a look at a single revlog. This is easy to add back on a case-by-case basis and does not need to stay with the more permanent timers.
-