Mon, 11 Jul 2022 22:47:56 +0200 rust: bump to memmap2 0.5.3, micro-timer 0.4.0, and crossbeam-channel 0.5.0 stable
Mads Kiilerich <mads@kiilerich.com> [Mon, 11 Jul 2022 22:47:56 +0200] rev 49398
rust: bump to memmap2 0.5.3, micro-timer 0.4.0, and crossbeam-channel 0.5.0 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.
Thu, 28 Jul 2022 14:11:53 +0200 Added signature for changeset f69bffd00abe stable
Raphaël Gomès <rgomes@octobus.net> [Thu, 28 Jul 2022 14:11:53 +0200] rev 49397
Added signature for changeset f69bffd00abe
Thu, 28 Jul 2022 14:11:35 +0200 Added tag 6.2.1 for changeset f69bffd00abe stable
Raphaël Gomès <rgomes@octobus.net> [Thu, 28 Jul 2022 14:11:35 +0200] rev 49396
Added tag 6.2.1 for changeset f69bffd00abe
Wed, 27 Jul 2022 12:07:18 +0200 debug-discovery: apply spelling fixes from Raphaël stable 6.2.1
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 27 Jul 2022 12:07:18 +0200] rev 49395
debug-discovery: apply spelling fixes from Raphaël
Tue, 26 Jul 2022 11:10:43 +0200 tree-discovery: fix the request debug output and progress location stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 26 Jul 2022 11:10:43 +0200] rev 49394
tree-discovery: fix the request debug output and progress location This is now associated with each request.
Tue, 26 Jul 2022 10:48:06 +0200 debug-discovery: deal with case where common is empty stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 26 Jul 2022 10:48:06 +0200] rev 49393
debug-discovery: deal with case where common is empty This code was previously confused by case where: `heads_common == {nullid}`
Tue, 26 Jul 2022 10:39:27 +0200 debug-discovery: do not abort on unrelated repositories stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 26 Jul 2022 10:39:27 +0200] rev 49392
debug-discovery: do not abort on unrelated repositories This is a useful case to consider, so we should not abort in this case. A warning is still issued.
Tue, 26 Jul 2022 10:34:20 +0200 debug-discovery: gather the right number of roundtrips for tree discovery stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 26 Jul 2022 10:34:20 +0200] rev 49391
debug-discovery: gather the right number of roundtrips for tree discovery We where not counting the right amount of request before.
Tue, 26 Jul 2022 10:04:06 +0200 debug-discovery: also gather details on tree-discovery queries type stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 26 Jul 2022 10:04:06 +0200] rev 49390
debug-discovery: also gather details on tree-discovery queries type This is useful to understand the algorithm.
Tue, 26 Jul 2022 04:56:29 +0200 debug-discovery: properly apply remote filtering in "old" mode stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 26 Jul 2022 04:56:29 +0200] rev 49389
debug-discovery: properly apply remote filtering in "old" mode 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.
Tue, 26 Jul 2022 04:54:59 +0200 debug-discovery: fix a typo in the doc stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 26 Jul 2022 04:54:59 +0200] rev 49388
debug-discovery: fix a typo in the doc The second option should be `--remote-…` as we just talked about `--local-…` already.
Tue, 19 Jul 2022 18:40:20 -0400 packaging: bump dulwich to 0.20.45 stable
Matt Harbison <matt_harbison@yahoo.com> [Tue, 19 Jul 2022 18:40:20 -0400] rev 49387
packaging: bump dulwich to 0.20.45 I'm told the new dulwich avoids hg-git test failures.
Tue, 19 Jul 2022 18:33:26 -0400 packaging: update keyring on Windows to avoid spurious stacktraces stable
Matt Harbison <matt_harbison@yahoo.com> [Tue, 19 Jul 2022 18:33:26 -0400] rev 49386
packaging: update keyring on Windows to avoid spurious stacktraces 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
Tue, 19 Jul 2022 12:41:46 +0200 mergestate: action name was str stable
Georges Racinet <georges.racinet@octobus.net> [Tue, 19 Jul 2022 12:41:46 +0200] rev 49385
mergestate: action name was str Apparently the standard for them is still to use byte strings. Found while looking at something else
Wed, 13 Jul 2022 18:27:40 +0200 sslutil: another use proper attribute to select python 3.7+ stable
Ondrej Pohorelsky <opohorel@redhat.com> [Wed, 13 Jul 2022 18:27:40 +0200] rev 49384
sslutil: another use proper attribute to select python 3.7+ 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'
Tue, 12 Jul 2022 15:59:53 +0200 sslutil: use proper attribute to select python 3.7+ stable
Mathias De Mare <mathias.de_mare@nokia.com> [Tue, 12 Jul 2022 15:59:53 +0200] rev 49383
sslutil: use proper attribute to select python 3.7+ 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'
Wed, 06 Jul 2022 11:52:26 +0400 git: copy findmissingrevs() from revlog.py to gitlog.py (issue6472) stable
Anton Shestakov <av6@dwimlabs.net> [Wed, 06 Jul 2022 11:52:26 +0400] rev 49382
git: copy findmissingrevs() from revlog.py to gitlog.py (issue6472)
Mon, 04 Jul 2022 17:16:13 +0400 git: add a missing reset_copy keyword argument to dirstate.set_tracked() stable
Anton Shestakov <av6@dwimlabs.net> [Mon, 04 Jul 2022 17:16:13 +0400] rev 49381
git: add a missing reset_copy keyword argument to dirstate.set_tracked() 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'.
Mon, 04 Jul 2022 15:01:52 +0400 git: make sure to fsdecode bookmark names everywhere (issue6723) stable
Anton Shestakov <av6@dwimlabs.net> [Mon, 04 Jul 2022 15:01:52 +0400] rev 49380
git: make sure to fsdecode bookmark names everywhere (issue6723)
Mon, 11 Jul 2022 09:50:32 +0200 Added signature for changeset 094a5fa3cf52 stable
Raphaël Gomès <rgomes@octobus.net> [Mon, 11 Jul 2022 09:50:32 +0200] rev 49379
Added signature for changeset 094a5fa3cf52
Mon, 11 Jul 2022 09:50:13 +0200 Added tag 6.2 for changeset 094a5fa3cf52 stable
Raphaël Gomès <rgomes@octobus.net> [Mon, 11 Jul 2022 09:50:13 +0200] rev 49378
Added tag 6.2 for changeset 094a5fa3cf52
Mon, 11 Jul 2022 01:51:20 +0200 procutil: make stream detection in make_line_buffered more correct and strict stable 6.2
Manuel Jacob <me@manueljacob.de> [Mon, 11 Jul 2022 01:51:20 +0200] rev 49377
procutil: make stream detection in make_line_buffered more correct and strict 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.
Tue, 05 Jul 2022 17:53:26 +0200 repo-upgrade: avoid a crash when multiple optimisation are specified stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 05 Jul 2022 17:53:26 +0200] rev 49376
repo-upgrade: avoid a crash when multiple optimisation are specified In Python 3, the type are no longer comparable and this expose the error.
Wed, 25 May 2022 18:29:21 +0200 rust: remove excessive calls to `#[timed]` stable
Raphaël Gomès <rgomes@octobus.net> [Wed, 25 May 2022 18:29:21 +0200] rev 49375
rust: remove excessive calls to `#[timed]` 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.
Wed, 25 May 2022 16:50:00 +0200 rhg: add error message for paths outside the repository when cwd != root stable
Raphaël Gomès <rgomes@octobus.net> [Wed, 25 May 2022 16:50:00 +0200] rev 49374
rhg: add error message for paths outside the repository when cwd != root This mirrors the Python implementation. The relative path handling should probably be refactored into a util, but it it out of scope for this change.
Wed, 18 May 2022 15:53:28 +0100 rust: don't swallow valuable error information stable
Raphaël Gomès <rgomes@octobus.net> [Wed, 18 May 2022 15:53:28 +0100] rev 49373
rust: don't swallow valuable error information This helps when diagnosing corruption, and is in general good practice. The information is here, valuable and can be used easily.
Wed, 18 May 2022 09:50:39 +0100 rust: add message to `DirstateV2ParseError` to give some context stable
Raphaël Gomès <rgomes@octobus.net> [Wed, 18 May 2022 09:50:39 +0100] rev 49372
rust: add message to `DirstateV2ParseError` to give some context This is useful when debugging.
Sun, 12 Jun 2022 16:04:57 +0100 py3: stop using deprecated Element.getchildren() method in convert/darcs stable
Ian Moody <moz-ian@perix.co.uk> [Sun, 12 Jun 2022 16:04:57 +0100] rev 49371
py3: stop using deprecated Element.getchildren() method in convert/darcs This has been deprecated since py3.2, and removed entirely in py3.9
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -28 +28 +50 +100 +300 +1000 tip