Wed, 06 Sep 2023 18:10:44 +0200 relnotes: add 6.5.2 stable 6.5.2
Raphaël Gomès <rgomes@octobus.net> [Wed, 06 Sep 2023 18:10:44 +0200] rev 50774
relnotes: add 6.5.2
Wed, 30 Aug 2023 12:24:12 +0200 run-tests: detect HGWITHRUSTEXT value stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 30 Aug 2023 12:24:12 +0200] rev 50773
run-tests: detect HGWITHRUSTEXT value Without this, some manual check in tests/test-dirstate.t could get confused by the lack of `rust` in module policy and break the test.
Wed, 30 Aug 2023 11:31:05 +0100 tests: avoid test environment affecting setup.py stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Wed, 30 Aug 2023 11:31:05 +0100] rev 50772
tests: avoid test environment affecting setup.py In particular [RHG_FALLBACK_EXECUTABLE] is being set prematurely, before rhg is built, but probably the rest of the env changes don't help, either.
Mon, 04 Sep 2023 13:33:32 +0100 setup: make the error "Unable to find a working hg binary" more informative stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Mon, 04 Sep 2023 13:33:32 +0100] rev 50771
setup: make the error "Unable to find a working hg binary" more informative The error message now shows the attempted hg commands and their stderr, to make it easier to investigate why things are not working. Here's an example output /!\ /!\ Unable to find a working hg binary /!\ Version cannot be extracted from the repository /!\ Re-run the setup once a first version is built /!\ Attempts: /!\ attempt #0: /!\ cmd: ['hg-missing', 'log', '-r.', '-Ttest'] /!\ exception: [Errno 2] No such file or directory: 'hg-missing': 'hg-missing' /!\ attempt #1: /!\ cmd: ['/usr/bin/python3', 'hg', 'log', '-r.', '-Ttest'] /!\ return code: 255 /!\ std output: /!\ std error: *** failed to import extension "topic": No module named 'topic' *** failed to import extension "evolve": No module named 'evolve' abort: accessing `dirstate-v2` repository without associated fast implementation. (check `hg help config.format.use-dirstate-v2` for details) /!\ /!\ Could not determine the Mercurial version /!\ You need to build a local version first /!\ Run `make local` and try again /!\
Mon, 21 Aug 2023 10:21:58 -0400 transaction: fix __repr__() and make the default name bytes stable
Matt Harbison <matt_harbison@yahoo.com> [Mon, 21 Aug 2023 10:21:58 -0400] rev 50770
transaction: fix __repr__() and make the default name bytes This likely was always wrong on py3, since going back to aff5996f3043, these were added as a r-strings. Callers seem to always be supplying bytes, which makes the `b'/'.join(...)` part OK, but then bytes can't be interpolated into str with "%s", so it wouldn't have worked in either case.
Sun, 20 Aug 2023 16:32:18 -0400 gpg: fix an UnboundLocalError whenever using --force stable
Matt Harbison <matt_harbison@yahoo.com> [Sun, 20 Aug 2023 16:32:18 -0400] rev 50769
gpg: fix an UnboundLocalError whenever using --force It looks like this has been broke for almost a decade, since 9c89ac99690e.
Thu, 10 Aug 2023 19:00:19 +0100 rhg: fix the bug where sparse config is interpreted as relglob instead of glob stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 10 Aug 2023 19:00:19 +0100] rev 50768
rhg: fix the bug where sparse config is interpreted as relglob instead of glob relglob apparently (in contrast with relpath) matches everywhere in the tree, whereas glob only matches at the root. The python version interprets these patterns as "glob" (see "normalize(include, b'glob', ...)" in match.py)
Mon, 07 Aug 2023 23:12:02 +0200 hgweb: encode WSGI environment using the ISO-8859-1 codec stable
Manuel Jacob <me@manueljacob.de> [Mon, 07 Aug 2023 23:12:02 +0200] rev 50767
hgweb: encode WSGI environment using the ISO-8859-1 codec The WSGI specification (PEP 3333) specifies that on Python 3 all strings passed by the server must be of type str with code points encodable using the ISO 8859-1 codec. For some reason, I introduced a bug in 2632c1ed8f34 by applying the reverse change. Maybe I got confused because PEP 3333 says that arbitrary operating system environment variables may be contained in the WSGI environment and therefore we need to handle the WSGI environment variables like we would handle operating system environment variables. The bug mentioned in the previous paragraph and fixed by this changeset manifested e.g. in the path of the URL being encoded in the wrong way. Browsers encode non-ASCII bytes with the percent-encoding. WSGI servers will decode the percent-encoded bytes and pass them to the application as strings where each byte is mapped to the corresponding code point with the same ordinal (i.e. it is decoded using the ISO-8859-1 codec). Mercurial uses the bytes type for these strings (which makes much more sense), so we need to encode it again using the ISO-8859-1 codec. If we use another codec, it can result in nonsense.
Mon, 07 Aug 2023 23:12:02 +0200 hgweb: encode WSGI environment using the ISO-8859-1 codec draft stable
Manuel Jacob <me@manueljacob.de> [Mon, 07 Aug 2023 23:12:02 +0200] rev 50766
hgweb: encode WSGI environment using the ISO-8859-1 codec The WSGI specification (PEP 3333) specifies that on Python 3 all strings passed by the server must be of type str with code points encodable using the ISO 8859-1 codec. For some reason, I introduced a bug in 2632c1ed8f34 by applying the reverse change. Maybe I got confused because PEP 3333 says that arbitrary operating system environment variables may be contained in the WSGI environment and therefore we need to handle the WSGI environment variables like we would handle operating system environment variables. The bug mentioned in the previous paragraph and fixed by this changeset manifested e.g. in the path of the URL being encoded in the wrong way. Browsers encode non-ASCII bytes with the percent-encoding. WSGI servers will decode the percent-encoded bytes and pass them to the application as strings where each byte is mapped to the corresponding code point with the same ordinal (i.e. it is decoded using the ISO-8859-1 codec). Mercurial uses the bytes type for these strings (which makes much more sense), so we need to encode it again using the ISO-8859-1 codec. If we use another codec, it can result in nonsense.
Mon, 07 Aug 2023 11:05:43 +0200 Added signature for changeset 787af4e0e8b7 stable
Raphaël Gomès <rgomes@octobus.net> [Mon, 07 Aug 2023 11:05:43 +0200] rev 50765
Added signature for changeset 787af4e0e8b7
Mon, 07 Aug 2023 11:05:27 +0200 Added tag 6.5.1 for changeset 787af4e0e8b7 stable
Raphaël Gomès <rgomes@octobus.net> [Mon, 07 Aug 2023 11:05:27 +0200] rev 50764
Added tag 6.5.1 for changeset 787af4e0e8b7
Mon, 07 Aug 2023 11:04:53 +0200 relnotes: add 6.5.1 stable 6.5.1
Raphaël Gomès <rgomes@octobus.net> [Mon, 07 Aug 2023 11:04:53 +0200] rev 50763
relnotes: add 6.5.1
Thu, 22 Jun 2023 16:02:12 +0200 perf: fix perf::tags stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 22 Jun 2023 16:02:12 +0200] rev 50762
perf: fix perf::tags That return is invalid and unnecessary.
Fri, 21 Jul 2023 15:50:56 +0200 revlog: fix the naming scheme use by split temporary file stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jul 2023 15:50:56 +0200] rev 50761
revlog: fix the naming scheme use by split temporary file The `-s` is now added on the first piece only and the `.i` is added to the index. This match the initially intended naming scheme.
Fri, 21 Jul 2023 15:15:43 +0200 revlog: show that temporary split file use broken name scheme stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jul 2023 15:15:43 +0200] rev 50760
revlog: show that temporary split file use broken name scheme The `-s` is added on the wrong part and the `.i` is missing.
Thu, 13 Jul 2023 19:36:43 +0100 fncache: fix a bug that corrupts the fncache after transaction rollback stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 13 Jul 2023 19:36:43 +0100] rev 50759
fncache: fix a bug that corrupts the fncache after transaction rollback
Thu, 13 Jul 2023 19:26:45 +0100 fncache: add a test demonstrating fncache corruption stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 13 Jul 2023 19:26:45 +0100] rev 50758
fncache: add a test demonstrating fncache corruption
Wed, 19 Jul 2023 21:45:39 +0200 compat: use cp -R in `test-revlog-delta-find.t` (issue6835) stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 19 Jul 2023 21:45:39 +0200] rev 50757
compat: use cp -R in `test-revlog-delta-find.t` (issue6835) This follow POSIX and make things compatible with NetBSD.
Wed, 19 Jul 2023 17:42:33 +0200 compat: use cp -R in `test-bundle-phase-internal.t` (issue6835) stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 19 Jul 2023 17:42:33 +0200] rev 50756
compat: use cp -R in `test-bundle-phase-internal.t` (issue6835) This follow POSIX and make things compatible with NetBSD.
Wed, 12 Jul 2023 12:47:08 +0200 repoview: fix the filter created by `extrafilter` stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 12 Jul 2023 12:47:08 +0200] rev 50755
repoview: fix the filter created by `extrafilter` The `name` variable was updated in each interaction of the loop, making all new filters inheriting from the same base (the last one iterated), leading to terrible terrible misbehavior.
Wed, 12 Jul 2023 12:46:58 +0200 repoview: show `extrafilter` misbehave when other filtering is in play stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 12 Jul 2023 12:46:58 +0200] rev 50754
repoview: show `extrafilter` misbehave when other filtering is in play See new changeset for fix and details.
Wed, 28 Jun 2023 14:23:13 +0200 extensions: imp module is removed in Python 3.12 - use importlib to load files stable
Mads Kiilerich <mads@kiilerich.com> [Wed, 28 Jun 2023 14:23:13 +0200] rev 50753
extensions: imp module is removed in Python 3.12 - use importlib to load files imp has been deprecated for a long time, and has finally been removed in Python 3.12 . imp was only used for loading extensions that has been specified with direct .py path or path to a package directory. The same use cases can be achieved quite simple with importlib, , possiby with small changes in corner cases with undefined behaviour, such as extensions without .py source. There might also be corner cases and undefined behaviour around use of sys.modules and reloading.
Tue, 27 Jun 2023 13:05:03 +0200 utils: imp module is removed in Python 3.12 - get is_frozen() from _imp stable
Mads Kiilerich <mads@kiilerich.com> [Tue, 27 Jun 2023 13:05:03 +0200] rev 50752
utils: imp module is removed in Python 3.12 - get is_frozen() from _imp imp has been deprecated for a long time, and has finally been removed in Python 3.12 . The successor importlib is using the same internal _imp module as imp, but doesn't expose it's is_frozen. Using the internal function directly seems like the cleanest solution. Another alternative to imp.is_frozen("__main__") is sys.modules['__main__'].__spec__.origin == 'frozen' but that seems even more internal and fragile.
Tue, 27 Jun 2023 22:31:44 +0200 extensions: address ast deprecations introduced in Python 3.12 stable
Mads Kiilerich <mads@kiilerich.com> [Tue, 27 Jun 2023 22:31:44 +0200] rev 50751
extensions: address ast deprecations introduced in Python 3.12 Tests would fail with: .../mercurial/extensions.py:910: DeprecationWarning: ast.Str is deprecated and will be removed in Python 3.14; use ast.Constant instead if isinstance(a, ast.Str): .../mercurial/extensions.py:912: DeprecationWarning: ast.Bytes is deprecated and will be removed in Python 3.14; use ast.Constant instead elif isinstance(a, ast.Bytes): .../mercurial/extensions.py:913: DeprecationWarning: Attribute s is deprecated and will be removed in Python 3.14; use value instead name = a.s
(0) -30000 -10000 -3000 -1000 -300 -100 -50 -24 +24 +50 +100 +300 tip