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 50805
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 50804
compat: use cp -R in `test-bundle-phase-internal.t` (issue6835) This follow POSIX and make things compatible with NetBSD.
Fri, 21 Jul 2023 03:56:28 +0200 infinitepush: drop the extension
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jul 2023 03:56:28 +0200] rev 50803
infinitepush: drop the extension The writing have been on the wall for a long time.
Fri, 23 Jun 2023 13:27:09 +0200 perf: display all timing by default
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 23 Jun 2023 13:27:09 +0200] rev 50802
perf: display all timing by default This is much more useful and end up enable it everywhere. I don't think we have strong backward compatibility guarantee for perf.
Mon, 10 Jul 2023 10:53:12 +0200 wrapfunction: deprecated calling "wrapfunction" with bytes
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 10 Jul 2023 10:53:12 +0200] rev 50801
wrapfunction: deprecated calling "wrapfunction" with bytes This will help us to detect and eradicates legacy calls. This is on the path to deprecating `util.safehasattr`.
Mon, 10 Jul 2023 15:39:19 +0200 wrapfunction: deprecates calling `wrappedfunction` with bytes
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 10 Jul 2023 15:39:19 +0200] rev 50800
wrapfunction: deprecates calling `wrappedfunction` with bytes This will help us to detect and eradicates legacy calls. This is on the path to deprecating `util.safehasattr`.
Mon, 10 Jul 2023 19:34:04 +0200 wrapfunction: use sysstr instead of bytes as argument in various tests
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 10 Jul 2023 19:34:04 +0200] rev 50799
wrapfunction: use sysstr instead of bytes as argument in various tests This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
Mon, 10 Jul 2023 19:33:14 +0200 wrapfunction: use sysstr instead of bytes as argument in "exthelper"
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 10 Jul 2023 19:33:14 +0200] rev 50798
wrapfunction: use sysstr instead of bytes as argument in "exthelper" This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
Mon, 10 Jul 2023 15:38:53 +0200 wrapfunction: use sysstr instead of bytes as argument in "sqlitestore"
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 10 Jul 2023 15:38:53 +0200] rev 50797
wrapfunction: use sysstr instead of bytes as argument in "sqlitestore" This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
Mon, 10 Jul 2023 19:32:17 +0200 wrapfunction: use sysstr instead of bytes as argument in "share"
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 10 Jul 2023 19:32:17 +0200] rev 50796
wrapfunction: use sysstr instead of bytes as argument in "share" This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
Mon, 10 Jul 2023 19:31:26 +0200 wrapfunction: use sysstr instead of bytes as argument in "perf"
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 10 Jul 2023 19:31:26 +0200] rev 50795
wrapfunction: use sysstr instead of bytes as argument in "perf" This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
Fri, 03 Feb 2023 04:30:44 +0100 wrapfunction: use sysstr instead of bytes as argument in "zeroconf"
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Feb 2023 04:30:44 +0100] rev 50794
wrapfunction: use sysstr instead of bytes as argument in "zeroconf" This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
Fri, 03 Feb 2023 04:27:17 +0100 wrapfunction: use sysstr instead of bytes as argument in "sqlitestore"
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Feb 2023 04:27:17 +0100] rev 50793
wrapfunction: use sysstr instead of bytes as argument in "sqlitestore" This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
Fri, 03 Feb 2023 04:26:18 +0100 wrapfunction: use sysstr instead of bytes as argument in "sparse"
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Feb 2023 04:26:18 +0100] rev 50792
wrapfunction: use sysstr instead of bytes as argument in "sparse" This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
Fri, 03 Feb 2023 04:25:57 +0100 wrapfunction: use sysstr instead of bytes as argument in "schemes"
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Feb 2023 04:25:57 +0100] rev 50791
wrapfunction: use sysstr instead of bytes as argument in "schemes" This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
Fri, 03 Feb 2023 04:25:43 +0100 wrapfunction: use sysstr instead of bytes as argument in "remotenames"
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Feb 2023 04:25:43 +0100] rev 50790
wrapfunction: use sysstr instead of bytes as argument in "remotenames" This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
Fri, 03 Feb 2023 04:25:07 +0100 wrapfunction: use sysstr instead of bytes as argument in "remotefilelog"
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Feb 2023 04:25:07 +0100] rev 50789
wrapfunction: use sysstr instead of bytes as argument in "remotefilelog" This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
Fri, 03 Feb 2023 04:24:53 +0100 wrapfunction: use sysstr instead of bytes as argument in "pager"
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Feb 2023 04:24:53 +0100] rev 50788
wrapfunction: use sysstr instead of bytes as argument in "pager" This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
Fri, 03 Feb 2023 04:24:40 +0100 wrapfunction: use sysstr instead of bytes as argument in "narrow"
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Feb 2023 04:24:40 +0100] rev 50787
wrapfunction: use sysstr instead of bytes as argument in "narrow" This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
Fri, 03 Feb 2023 04:23:12 +0100 wrapfunction: use sysstr instead of bytes as argument in "lfs"
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Feb 2023 04:23:12 +0100] rev 50786
wrapfunction: use sysstr instead of bytes as argument in "lfs" This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
Fri, 03 Feb 2023 04:22:41 +0100 wrapfunction: use sysstr instead of bytes as argument in "largefiles"
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Feb 2023 04:22:41 +0100] rev 50785
wrapfunction: use sysstr instead of bytes as argument in "largefiles" This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
Fri, 03 Feb 2023 04:22:28 +0100 wrapfunction: use sysstr instead of bytes as argument in "keyword"
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Feb 2023 04:22:28 +0100] rev 50784
wrapfunction: use sysstr instead of bytes as argument in "keyword" This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
Fri, 03 Feb 2023 04:22:15 +0100 wrapfunction: use sysstr instead of bytes as argument in "journal"
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Feb 2023 04:22:15 +0100] rev 50783
wrapfunction: use sysstr instead of bytes as argument in "journal" This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
Fri, 03 Feb 2023 04:21:55 +0100 wrapfunction: use sysstr instead of bytes as argument in "infinitepush"
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Feb 2023 04:21:55 +0100] rev 50782
wrapfunction: use sysstr instead of bytes as argument in "infinitepush" This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
Fri, 03 Feb 2023 04:21:32 +0100 wrapfunction: use sysstr instead of bytes as argument in "histedit"
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Feb 2023 04:21:32 +0100] rev 50781
wrapfunction: use sysstr instead of bytes as argument in "histedit" This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
Fri, 03 Feb 2023 04:20:58 +0100 wrapfunction: use sysstr instead of bytes as argument in "highlight"
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Feb 2023 04:20:58 +0100] rev 50780
wrapfunction: use sysstr instead of bytes as argument in "highlight" This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
Mon, 10 Jul 2023 16:47:25 +0200 wrapfunction: use sysstr instead of bytes as argument in the "git" extension
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 10 Jul 2023 16:47:25 +0200] rev 50779
wrapfunction: use sysstr instead of bytes as argument in the "git" extension This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
Fri, 03 Feb 2023 04:19:06 +0100 wrapfunction: use sysstr instead of bytes as argument in "fsmonitor"
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Feb 2023 04:19:06 +0100] rev 50778
wrapfunction: use sysstr instead of bytes as argument in "fsmonitor" This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
Mon, 10 Jul 2023 16:12:33 +0200 wrapfunction: use sysstr instead of bytes as argument in "fastannotate"
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 10 Jul 2023 16:12:33 +0200] rev 50777
wrapfunction: use sysstr instead of bytes as argument in "fastannotate" This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
Fri, 03 Feb 2023 04:10:22 +0100 wrapfunction: use sysstr instead of bytes as argument in "clonebundles"
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Feb 2023 04:10:22 +0100] rev 50776
wrapfunction: use sysstr instead of bytes as argument in "clonebundles" This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
Fri, 03 Feb 2023 04:10:00 +0100 wrapfunction: use sysstr instead of bytes as argument in "bookflow"
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Feb 2023 04:10:00 +0100] rev 50775
wrapfunction: use sysstr instead of bytes as argument in "bookflow" This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
Fri, 03 Feb 2023 04:09:49 +0100 wrapfunction: use sysstr instead of bytes as argument in "beautifygraph"
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 03 Feb 2023 04:09:49 +0100] rev 50774
wrapfunction: use sysstr instead of bytes as argument in "beautifygraph" This is as valid and simpler, it will help us to eventually get ride of `safehasattr`.
Mon, 10 Jul 2023 15:59:04 +0200 byteify-strings: passe sysstr to attr function and wrapper
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 10 Jul 2023 15:59:04 +0200] rev 50773
byteify-strings: passe sysstr to attr function and wrapper These function now accepts string so we should not do byteify them anymore.
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 50772
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 50771
repoview: show `extrafilter` misbehave when other filtering is in play See new changeset for fix and details.
Wed, 12 Jul 2023 10:59:19 +0200 rust-config: add docstring to inner `get_parse` method
Raphaël Gomès <rgomes@octobus.net> [Wed, 12 Jul 2023 10:59:19 +0200] rev 50770
rust-config: add docstring to inner `get_parse` method The signature is quite heavy, a docstring to explain the idea doesn't hurt.
Thu, 06 Jul 2023 11:44:30 +0200 rust-config: add devel warning when using undeclared config items
Raphaël Gomès <rgomes@octobus.net> [Thu, 06 Jul 2023 11:44:30 +0200] rev 50769
rust-config: add devel warning when using undeclared config items This mirrors the Python implementation now that we're done catching up.
Thu, 06 Jul 2023 12:17:20 +0200 rhg: use default configitem in `cat`
Raphaël Gomès <rgomes@octobus.net> [Thu, 06 Jul 2023 12:17:20 +0200] rev 50768
rhg: use default configitem in `cat` Now that we've declared the items, we can get rid of the manual fallback.
Thu, 06 Jul 2023 11:47:41 +0200 rhg: add config defaults to configitems.toml
Raphaël Gomès <rgomes@octobus.net> [Thu, 06 Jul 2023 11:47:41 +0200] rev 50767
rhg: add config defaults to configitems.toml This will allow us to use the same default config mechanic as the rest of the code.
Thu, 06 Jul 2023 11:17:55 +0200 rust-blackbox: use `is_extension_enabled` config helper
Raphaël Gomès <rgomes@octobus.net> [Thu, 06 Jul 2023 11:17:55 +0200] rev 50766
rust-blackbox: use `is_extension_enabled` config helper It's there, may as well use it to make the code clearer and less bug-prone.
Wed, 05 Jul 2023 23:59:22 +0200 configitems: move blackbox's config items to the new configitems.toml
Raphaël Gomès <rgomes@octobus.net> [Wed, 05 Jul 2023 23:59:22 +0200] rev 50765
configitems: move blackbox's config items to the new configitems.toml In order for the Rust code to gain access to default values of in-core extensions that have a Rust implementation, we need to centralize them alongside the core items declarations. This is the first and so far only one of the extensions that have gained Rust support, I don't think it's worth the churn to move the rest of the extension's configitems yet.
Mon, 13 Feb 2023 18:11:48 +0100 rust-config: add config getters that don't fall back to defaults
Raphaël Gomès <rgomes@octobus.net> [Mon, 13 Feb 2023 18:11:48 +0100] rev 50764
rust-config: add config getters that don't fall back to defaults This is useful in cases where we access config items that are more... lenient with their types than a fresh new system would allow. For now there is only a single use of this, but we might get more later.
Thu, 06 Jul 2023 14:32:07 +0200 rust-config: add support for default config items
Raphaël Gomès <rgomes@octobus.net> [Thu, 06 Jul 2023 14:32:07 +0200] rev 50763
rust-config: add support for default config items Now that configitems.toml exists, we can read from it the default values for all core config items. We will add the devel-warning for use of undeclared config items in a later patch when we're done adding the missing entries for `rhg`.
Mon, 23 Jan 2023 18:08:11 +0100 configitems: declare items in a TOML file
Raphaël Gomès <rgomes@octobus.net> [Mon, 23 Jan 2023 18:08:11 +0100] rev 50762
configitems: declare items in a TOML file Mercurial ships with Rust code that also needs to read from the config. Having a way of presenting `configitems` to both Python and Rust is needed to prevent duplication, drift, and have the appropriate devel warnings. Abstracting away from Python means choosing a config format. No single format is perfect, and I have yet to come across a developer that doesn't hate all of them in some way. Since we have a strict no-dependencies policy for Mercurial, we either need to use whatever comes with Python, vendor a library, or implement a custom format ourselves. Python stdlib means using JSON, which doesn't support comments and isn't great for humans, or `configparser` which is an obscure, untyped format that nobody uses and doesn't have a commonplace Rust parser. Implementing a custom format is error-prone, tedious and subject to the same issues as picking an existing format. Vendoring opens us to the vast array of common config formats. The ones being picked for most modern software are YAML and TOML. YAML is older and common in the Python community, but TOML is much simpler and less error-prone. I would much rather be responsible for the <1000 lines of `tomli`, on top of TOML being the choice of the Rust community, with robust crates for reading it. The structure of `configitems.toml` is explained inline.
Mon, 23 Jan 2023 17:11:42 +0100 thirdparty: vendor tomli
Raphaël Gomès <rgomes@octobus.net> [Mon, 23 Jan 2023 17:11:42 +0100] rev 50761
thirdparty: vendor tomli The next commit will introduce a .toml file to abstract configitems away from Python. Python 3.11 has a toml read-only library (`tomllib`), which gives us a way out of vendoring eventually. For now, we vendor the backport, specifically version 1.2.3 which is still compatible with Python 3.6.
Mon, 23 Jan 2023 18:52:05 +0100 configitems: add `documentation` field
Raphaël Gomès <rgomes@octobus.net> [Mon, 23 Jan 2023 18:52:05 +0100] rev 50760
configitems: add `documentation` field It may be useful to expose documentation information in the help in some form. This will be populated in a future changeset by using the current comments that are relevant for users.
Mon, 23 Jan 2023 17:21:14 +0100 configitems: use standard "dynamicdefault" approach in edge case
Raphaël Gomès <rgomes@octobus.net> [Mon, 23 Jan 2023 17:21:14 +0100] rev 50759
configitems: use standard "dynamicdefault" approach in edge case This makes for fewer edge cases, which will help a future patch.
Tue, 17 Jan 2023 14:53:18 +0100 configitems: fix typo in devel warning about extension overrides
Raphaël Gomès <rgomes@octobus.net> [Tue, 17 Jan 2023 14:53:18 +0100] rev 50758
configitems: fix typo in devel warning about extension overrides
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 50757
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 50756
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 50755
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
Tue, 27 Jun 2023 08:39:12 +0200 vfs: handle shutil.rmtree deprecation of onerror in Python 3.12 stable
Mads Kiilerich <mads@kiilerich.com> [Tue, 27 Jun 2023 08:39:12 +0200] rev 50754
vfs: handle shutil.rmtree deprecation of onerror in Python 3.12 Tests would fail with warnings: .../mercurial/vfs.py:289: DeprecationWarning: onerror argument is deprecated, use onexc instead The excinfo changed slightly, but we don't use it anyway.
Tue, 27 Jun 2023 10:09:11 +0200 tests: fix sortdict doctest with Python 3.12 stable
Mads Kiilerich <mads@kiilerich.com> [Tue, 27 Jun 2023 10:09:11 +0200] rev 50753
tests: fix sortdict doctest with Python 3.12 The output of OrderedDict changed to use plain dict syntax: $ python3.11 -c "import collections;print(collections.OrderedDict([('a', 0), ('b', 1)]))" OrderedDict([('a', 0), ('b', 1)]) $ python3.12 -c "import collections;print(collections.OrderedDict([('a', 0), ('b', 1)]))" OrderedDict({'a': 0, 'b': 1})
Tue, 27 Jun 2023 13:51:50 +0200 utils: stop using datetime.utcfromtimestamp() deprecated in Python 3.12 stable
Mads Kiilerich <mads@kiilerich.com> [Tue, 27 Jun 2023 13:51:50 +0200] rev 50752
utils: stop using datetime.utcfromtimestamp() deprecated in Python 3.12 Python3.12 made tests fail with warnings: DeprecationWarning: datetime.utcfromtimestamp() is deprecated and scheduled for removal in a future version. Use timezone-aware objects to represent datetimes in UTC: datetime.fromtimestamp(timestamp, datetime.UTC). Computing the diff while in timestamp seconds seems to preserve to the original intent from ae04af1ce78d. It would be nice to have some doctest coverage of this, with the problematic corner cases that has popped up over time...
Thu, 06 Jul 2023 16:07:34 +0200 branching: merge stable into default
Raphaël Gomès <rgomes@octobus.net> [Thu, 06 Jul 2023 16:07:34 +0200] rev 50751
branching: merge stable into default
Thu, 06 Jul 2023 16:04:36 +0200 Added signature for changeset 3ffc7209bbae stable
Raphaël Gomès <rgomes@octobus.net> [Thu, 06 Jul 2023 16:04:36 +0200] rev 50750
Added signature for changeset 3ffc7209bbae
Thu, 06 Jul 2023 16:04:18 +0200 Added tag 6.5 for changeset 3ffc7209bbae stable
Raphaël Gomès <rgomes@octobus.net> [Thu, 06 Jul 2023 16:04:18 +0200] rev 50749
Added tag 6.5 for changeset 3ffc7209bbae
Thu, 06 Jul 2023 16:02:59 +0200 relnotes: add 6.5 final stable 6.5
Raphaël Gomès <rgomes@octobus.net> [Thu, 06 Jul 2023 16:02:59 +0200] rev 50748
relnotes: add 6.5 final
Thu, 06 Jul 2023 11:58:24 +0200 rust-changelog: removed now useless early conditional for NULL_REVISION stable
Georges Racinet <georges.racinet@octobus.net> [Thu, 06 Jul 2023 11:58:24 +0200] rev 50747
rust-changelog: removed now useless early conditional for NULL_REVISION Now that the underlying `RevlogEntry` returned for `NULL_REVISION` is viable, it has become pointless to check NULL_REVISION several times, even for performance: the check will be far more frequent than the benefit of bailing earlier in the rare case where the requested revision is `NULL_REVISION`. This case is covered explicitly by the first assertion of `test_data_from_rev_null`.
Thu, 06 Jul 2023 11:53:40 +0200 rust-revlog: fix RevlogEntry.data() for NULL_REVISION stable
Georges Racinet <georges.racinet@octobus.net> [Thu, 06 Jul 2023 11:53:40 +0200] rev 50746
rust-revlog: fix RevlogEntry.data() for NULL_REVISION Before this change, the pseudo-entry returned by `Revlog.get_entry` for `NULL_REVISION` would trigger errors in application code using it. For example, this fixes a crash spotted with changelog data while implementing RHGitaly: `Changelog.data_for_rev(-1)` was already returning the pseudo content as expected, e.g., for `hg log`, but `Changelog.entry_for_rev(-1).data()` would still crash with "corrupted revlog, hash check failed for revision -1". There is an added test for this scenario.
Thu, 06 Jul 2023 11:43:26 +0200 rust-revlog: using constant in test stable
Georges Racinet <georges.racinet@octobus.net> [Thu, 06 Jul 2023 11:43:26 +0200] rev 50745
rust-revlog: using constant in test Always better
Thu, 30 Mar 2023 11:34:30 +0200 rust-revlog: fix incorrect results with NULL_NODE prefixes stable
Georges Racinet <georges.racinet@octobus.net> [Thu, 30 Mar 2023 11:34:30 +0200] rev 50744
rust-revlog: fix incorrect results with NULL_NODE prefixes In case a short hash is a prefix of `NULL_NODE`, the correct revision number lookup is `NULL_REVISION` only if there is no match in the nodemap. Indeed, if there is a single nodemap match, then it is an ambiguity with the always matching `NULL_NODE`. Before this change, using the Mercurial development repository as a testbed (it has public changesets with node ID starting with `0005` and `0009`), this is what `rhg` did (plain `hg` provided for reference) ``` $ rust/target/debug/rhg cat -r 000 README README: no such file in rev 000000000000 $ hg cat -r 000 README abort: ambiguous revision identifier: 000 ``` Here is the expected output for `rhg` on ambiguous prefixes (again, before this change): ``` $ rust/target/debug/rhg cat -r 0001 README abort: ambiguous revision identifier: 0001 ``` The test provided by 8c29af0f6d6e in `test-rhg.t` could become flaky with this change, unless all hashes are fixed. We expect reviewers to be more sure about that than we are.
Thu, 30 Mar 2023 10:29:29 +0200 rust-revlog: split out method for `rev_from_node` without persistent nodemap stable
Georges Racinet <georges.racinet@octobus.net> [Thu, 30 Mar 2023 10:29:29 +0200] rev 50743
rust-revlog: split out method for `rev_from_node` without persistent nodemap This will make easier for the bug fix that is about to come.
Thu, 08 Jun 2023 00:03:54 -0400 win32mbcs: unbyteify some strings for py3 support stable
Matt Harbison <matt_harbison@yahoo.com> [Thu, 08 Jun 2023 00:03:54 -0400] rev 50742
win32mbcs: unbyteify some strings for py3 support A crash was reported on the TortoiseHg bug tracker for this[1]. [1] https://foss.heptapod.net/mercurial/tortoisehg/thg/-/issues/5905
Tue, 04 Jul 2023 12:30:31 +0200 heptapod-ci: turn off pipelines for merge request events stable
Raphaël Gomès <rgomes@octobus.net> [Tue, 04 Jul 2023 12:30:31 +0200] rev 50741
heptapod-ci: turn off pipelines for merge request events These are always duplicated by the external (from the user) push, or internal (from Heptapod itself) push pipeline, so they're entirely redundant.
Tue, 04 Jul 2023 12:23:05 +0200 heptapod-ci: always make the default run condition explicit stable
Raphaël Gomès <rgomes@octobus.net> [Tue, 04 Jul 2023 12:23:05 +0200] rev 50740
heptapod-ci: always make the default run condition explicit This has no effect on behavior, it's just to make everything obvious.
Tue, 04 Jul 2023 12:21:45 +0200 heptapod-ci: remove push exception for named branches stable
Raphaël Gomès <rgomes@octobus.net> [Tue, 04 Jul 2023 12:21:45 +0200] rev 50739
heptapod-ci: remove push exception for named branches The internal workings of Heptapod cause even fast-forward merges to look like pushes to Gitlab. The only way to run a pipeline on topic-less named branches is not through the web interface. I am probably the only person affected by this, so it's not really a problem. This was confirmed with Georges, the maintainer of Heptapod, though the only way to be *actually* sure, is to merge this and see.
Mon, 03 Jul 2023 15:28:17 +0200 heptapod-ci: (hopefully) fix the pipeline savings system stable
Raphaël Gomès <rgomes@octobus.net> [Mon, 03 Jul 2023 15:28:17 +0200] rev 50738
heptapod-ci: (hopefully) fix the pipeline savings system There is no easy way for me to test this outside of the actual repo since it would require setting up `heptapod-runner` locally, making a Git repo with the right changes, etc. It's not worth my time at this point. If this fails, I'll try to ask for help from Georges, the maintainer of Heptapod.
Mon, 03 Jul 2023 11:02:36 +0200 heptapod-ci: don't run pipelines for topic-less branches stable
Raphaël Gomès <rgomes@octobus.net> [Mon, 03 Jul 2023 11:02:36 +0200] rev 50737
heptapod-ci: don't run pipelines for topic-less branches See inline comment for more details.
Tue, 27 Jun 2023 16:19:42 +0200 clonebundles: add warning if auto-generate is enabled without formats stable
Mathias De Mare <mathias.de_mare@nokia.com> [Tue, 27 Jun 2023 16:19:42 +0200] rev 50736
clonebundles: add warning if auto-generate is enabled without formats
Tue, 27 Jun 2023 15:34:24 +0200 clonebundles: fix display of auto-generate.on-change lines stable
Mathias De Mare <mathias.de_mare@nokia.com> [Tue, 27 Jun 2023 15:34:24 +0200] rev 50735
clonebundles: fix display of auto-generate.on-change lines
Mon, 26 Jun 2023 18:00:28 +0200 hgweb: drop references to deprecated cgitb stable
Mads Kiilerich <mads@kiilerich.com> [Mon, 26 Jun 2023 18:00:28 +0200] rev 50734
hgweb: drop references to deprecated cgitb cgitb is going away and gives warnings when importing, and that make tests fail: $TESTTMP/hgweb.cgi:5: DeprecationWarning: 'cgitb' is deprecated and slated for removal in Python 3.13 The lack of a "nice" high level error handler is not a huge problem, neither for users (where it is disabled anyway) or for tests (where we don't use a browser and the plain tracebacks often are more readable). It is inevitable that it is going away, and there is no obvious alternative. Remove it and move on.
Tue, 27 Jun 2023 12:09:17 +0200 setup: fall back to setuptools setup if distutils isn't available stable
Mads Kiilerich <mads@kiilerich.com> [Tue, 27 Jun 2023 12:09:17 +0200] rev 50733
setup: fall back to setuptools setup if distutils isn't available The setuptools comments around this seems slightly outdated. Setuptools is improving and distutils is being deprecated, so it should perhaps be the default. But at least, it is a fair fallback.
Thu, 23 Mar 2023 16:45:12 +0100 tests: use simple mock smtp server instead of deprecated asyncore smtpd stable
Mads Kiilerich <mads@kiilerich.com> [Thu, 23 Mar 2023 16:45:12 +0100] rev 50732
tests: use simple mock smtp server instead of deprecated asyncore smtpd test-patchbomb-tls.t would fail with: .../hg/tests/dummysmtpd.py:6: DeprecationWarning: The asyncore module is deprecated and will be removed in Python 3.12. The recommended replacement is asyncio import asyncore .../hg/tests/dummysmtpd.py:8: DeprecationWarning: The smtpd module is deprecated and unmaintained and will be removed in Python 3.12. Please see aiosmtpd (https://aiosmtpd.readthedocs.io/) for the recommended replacement. import smtpd The recommended migration path to the standalone asiosmtpd would be overkill. The tests do not need a full smtp server - we can just use a very simple mock hack to preserve the existing test coverage.
Mon, 26 Jun 2023 16:45:13 +0200 tests: fix dummysmtpd argument check stable
Mads Kiilerich <mads@kiilerich.com> [Mon, 26 Jun 2023 16:45:13 +0200] rev 50731
tests: fix dummysmtpd argument check
Mon, 26 Jun 2023 15:51:39 +0200 tests: improve test-patchbomb-tls.t by by logging errors and data stable
Mads Kiilerich <mads@kiilerich.com> [Mon, 26 Jun 2023 15:51:39 +0200] rev 50730
tests: improve test-patchbomb-tls.t by by logging errors and data The actual SSL error might be like: ::1 ssl error: [SSL: TLSV1_ALERT_UNKNOWN_CA] tlsv1 alert unknown ca (_ssl.c:1002) and will probably vary so much that it can't be checked in the test. It is however very useful when debugging failures.
Thu, 23 Mar 2023 16:48:44 +0100 tests: show test-patchbomb-tls.t smtp server log stable
Mads Kiilerich <mads@kiilerich.com> [Thu, 23 Mar 2023 16:48:44 +0100] rev 50729
tests: show test-patchbomb-tls.t smtp server log Improve test coverage by exposing what the smtp server actually receives. Make dummystmtpd redirect stderr to a log file.
Wed, 28 Jun 2023 01:31:10 +0200 demandimport: don't delay _distutils_hack import stable
Mads Kiilerich <mads@kiilerich.com> [Wed, 28 Jun 2023 01:31:10 +0200] rev 50728
demandimport: don't delay _distutils_hack import test-demandimport.py would fail on 'import distutils.msvc9compiler' because warnings: /usr/lib/python3.11/site-packages/_distutils_hack/__init__.py:18: UserWarning: Distutils was imported before Setuptools, but importing Setuptools also replaces the `distutils` module in `sys.modules`. This may lead to undesirable behaviors or errors. To avoid these issues, avoid using distutils directly, ensure that setuptools is installed in the traditional way (e.g. not an editable install), and/or make sure that setuptools is always imported before distutils. warnings.warn( /usr/lib/python3.11/site-packages/_distutils_hack/__init__.py:33: UserWarning: Setuptools is replacing distutils. warnings.warn("Setuptools is replacing distutils.") Telling demandimport to ignore this module will allow the hack to work as intended. Note: The test for distutils.msvc9compiler comes from 2205d00b6d2b. But since then, distutils is going away, and setuptools has moved forward and is replacing it. It is unclear exactly what is being tested here and how setuptools should depended on msvc9compiler. The test might no longer be relevant.
Wed, 22 Mar 2023 16:05:59 +0100 tests: update test-remotefilelog-gc.t for Python 3.11 stable
Mads Kiilerich <mads@kiilerich.com> [Wed, 22 Mar 2023 16:05:59 +0100] rev 50727
tests: update test-remotefilelog-gc.t for Python 3.11 The test output changed because test coverage changed because normpath changed: $ python3.10 -c 'import os; print(repr(os.path.normpath("asdas\0das")))' 'asdas\x00das' $ python3.11 -c 'import os; print(repr(os.path.normpath("asdas\0das")))' 'asdas'
Mon, 26 Jun 2023 14:54:00 +0200 tests: use grep -F instead of obsolescent fgrep stable
Mads Kiilerich <mads@kiilerich.com> [Mon, 26 Jun 2023 14:54:00 +0200] rev 50726
tests: use grep -F instead of obsolescent fgrep Testing on Fedora 38 failed with: fgrep: warning: fgrep is obsolescent; using grep -F The warning comes from https://git.savannah.gnu.org/cgit/grep.git/commit/?id=a9515624709865d480e3142fd959bccd1c9372d1 . For further anecdotal evidence of the change, see https://www.phoronix.com/news/GNU-Grep-3.8-Stop-egrep-fgrep . grep -F is POSIX, but there is a risk that it doesn't work the same on all platforms - especially older Unix versions. It should however always be possible to put a GNU grep in $PATH before running the tests.
Mon, 26 Jun 2023 14:34:58 +0200 tests: use grep -E instead of obsolescent egrep stable
Mads Kiilerich <mads@kiilerich.com> [Mon, 26 Jun 2023 14:34:58 +0200] rev 50725
tests: use grep -E instead of obsolescent egrep Testing on Fedora 38 failed with: egrep: warning: egrep is obsolescent; using grep -E The warning comes from https://git.savannah.gnu.org/cgit/grep.git/commit/?id=a9515624709865d480e3142fd959bccd1c9372d1 . For further anecdotal evidence of the change, see https://www.phoronix.com/news/GNU-Grep-3.8-Stop-egrep-fgrep . This reverses the code check that goes back to e7d3b509af8b. grep -E is POSIX, but there is a risk that it doesn't work the same on all platforms - especially older Unix versions. It should however always be possible to put a GNU grep in $PATH before running the tests.
Mon, 26 Jun 2023 11:15:30 +0100 dirstate: avoid leaking disk space in `hg debugrebuilddirstate` stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Mon, 26 Jun 2023 11:15:30 +0100] rev 50724
dirstate: avoid leaking disk space in `hg debugrebuilddirstate` Before this MR running `hg debugrebuilddirstate` simply grows the dirstate without bound, never shrinking it, because the unused bytes counter stays low, even though the entirety of the file becomes unused.
Mon, 26 Jun 2023 11:21:43 +0100 dirstate-v2: actually fix the dirstate-v2 upgrade race stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Mon, 26 Jun 2023 11:21:43 +0100] rev 50723
dirstate-v2: actually fix the dirstate-v2 upgrade race It looks like the previous fix for the dirstate-v2 upgrade race didn't work. The problem is that it only recovers in case the size of the v1 `dirstate` file is smaller than the `v2` one, whereas in real life it's always larger. This commit changes the test to be more realistic, which reveals the crash, and changes the code to fix the crash.
Thu, 22 Jun 2023 14:24:45 +0200 Added signature for changeset bb42988c7e15 stable
Raphaël Gomès <rgomes@octobus.net> [Thu, 22 Jun 2023 14:24:45 +0200] rev 50722
Added signature for changeset bb42988c7e15
Thu, 22 Jun 2023 14:24:21 +0200 Added tag 6.5rc0 for changeset bb42988c7e15 stable
Raphaël Gomès <rgomes@octobus.net> [Thu, 22 Jun 2023 14:24:21 +0200] rev 50721
Added tag 6.5rc0 for changeset bb42988c7e15
Thu, 22 Jun 2023 12:36:49 +0200 relnotes: add 6.5rc0 stable 6.5rc0
Raphaël Gomès <rgomes@octobus.net> [Thu, 22 Jun 2023 12:36:49 +0200] rev 50720
relnotes: add 6.5rc0
Thu, 22 Jun 2023 11:36:37 +0200 branching: merge default into stable for 6.5rc0 stable
Raphaël Gomès <rgomes@octobus.net> [Thu, 22 Jun 2023 11:36:37 +0200] rev 50719
branching: merge default into stable for 6.5rc0
Thu, 22 Jun 2023 11:28:17 +0200 branching: merge stable into default
Raphaël Gomès <rgomes@octobus.net> [Thu, 22 Jun 2023 11:28:17 +0200] rev 50718
branching: merge stable into default
Thu, 22 Jun 2023 11:18:47 +0200 Added signature for changeset 271a4ab29605 stable
Raphaël Gomès <rgomes@octobus.net> [Thu, 22 Jun 2023 11:18:47 +0200] rev 50717
Added signature for changeset 271a4ab29605
Thu, 22 Jun 2023 11:18:27 +0200 Added tag 6.4.5 for changeset 271a4ab29605 stable
Raphaël Gomès <rgomes@octobus.net> [Thu, 22 Jun 2023 11:18:27 +0200] rev 50716
Added tag 6.4.5 for changeset 271a4ab29605
Thu, 22 Jun 2023 11:17:40 +0200 relnotes: add 6.4.5 stable 6.4.5
Raphaël Gomès <rgomes@octobus.net> [Thu, 22 Jun 2023 11:17:40 +0200] rev 50715
relnotes: add 6.4.5
Wed, 21 Jun 2023 14:00:50 -0400 narrow: indicated the default of 'Yes' when confirming auto-remove-includes
Jason R. Coombs <jaraco@jaraco.com> [Wed, 21 Jun 2023 14:00:50 -0400] rev 50714
narrow: indicated the default of 'Yes' when confirming auto-remove-includes
Wed, 21 Jun 2023 15:55:07 +0200 clone-bundles: check we generate a valid specification
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Jun 2023 15:55:07 +0200] rev 50713
clone-bundles: check we generate a valid specification The short bundle-spec are ambiguous and should be expanded to a full one before clone bundle can use it. We fix the issue and add a test actually using the generated manifest for a clone bundle operation.
Wed, 21 Jun 2023 15:53:33 +0200 bundle-spec: add an official method to format a spec into a string
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 21 Jun 2023 15:53:33 +0200] rev 50712
bundle-spec: add an official method to format a spec into a string This will be useful for automatic-clonebundles.
Mon, 19 Jun 2023 18:15:35 +0200 clonebundles: adds a auto-generate.serve-inline option
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jun 2023 18:15:35 +0200] rev 50711
clonebundles: adds a auto-generate.serve-inline option This new option disable the "external" serving of auto generated bundle in favor of using the new "inline bundle" feature that allow serving such bundle through the mercurial protocol. This is a less efficient, but very easy to setup way to start using clone bundle.
Mon, 19 Jun 2023 18:15:27 +0200 clone-bundle: only add the REQUIRESNI bit for http(s)
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jun 2023 18:15:27 +0200] rev 50710
clone-bundle: only add the REQUIRESNI bit for http(s) we don't needs it for `peer-bundle-cache://` for example
Tue, 23 May 2023 10:24:57 +0200 stream-clone: add a stream-v3 variant of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 May 2023 10:24:57 +0200] rev 50709
stream-clone: add a stream-v3 variant of test-persistent-nodemap.t This will be useful to track and validate future changes to the stream-v3 protocol.
Tue, 23 May 2023 10:18:01 +0200 stream-clone: split the stream part out of test-persistent-nodemap.t
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 May 2023 10:18:01 +0200] rev 50708
stream-clone: split the stream part out of test-persistent-nodemap.t We want to test multiple variants, so let's make it an independent test. Small adaptations and simplifications are needed in the test output as the tested repository is now shorter.
Tue, 23 May 2023 03:09:46 +0200 stream-clone: explicitly split debug test output for application per version
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 23 May 2023 03:09:46 +0200] rev 50707
stream-clone: explicitly split debug test output for application per version Altering the format may introduce significant changes in output and in order. It is going to be simpler to deal with explicitly different blocks for the output.
Thu, 01 Jun 2023 17:39:22 +0100 stream-clone: add a v3 version of the protocol
Arseniy Alekseyev <aalekseyev@janestreet.com> [Thu, 01 Jun 2023 17:39:22 +0100] rev 50706
stream-clone: add a v3 version of the protocol This new version is less rigid regarding the extract number of files and number of bytes to be actually transfered, it also lays the groundwork for other improvements. The format stays experimental, but this is an interesting base to build upon.
Thu, 01 Jun 2023 18:20:28 +0100 stream-clone: fix the help for an argument of perf::stream-locked-section
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 01 Jun 2023 18:20:28 +0100] rev 50705
stream-clone: fix the help for an argument of perf::stream-locked-section The help for `--stream-version` had a typo and missed a value.
Tue, 20 Jun 2023 02:35:30 +0200 infinitepush: aggressively deprecated infinite push
pierre-yves.david@ens-lyon.org [Tue, 20 Jun 2023 02:35:30 +0200] rev 50704
infinitepush: aggressively deprecated infinite push We add a large warning and an explicit abort. Both can be disable through config, but neither are explicitly documented. If any user exists I really want them to get in touch with the community.
Mon, 19 Jun 2023 16:13:16 +0200 clone-bundle: double check that inline clone bundle does not break local case
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jun 2023 16:13:16 +0200] rev 50703
clone-bundle: double check that inline clone bundle does not break local case Since there is a large NotImplementedError in the code, I prefer we have a double check here.
Mon, 19 Jun 2023 15:48:03 +0200 clone-bundle: drop the now unused `inlineclonebundles` capabilities
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jun 2023 15:48:03 +0200] rev 50702
clone-bundle: drop the now unused `inlineclonebundles` capabilities We no longer us the capabilities as a side way to passe argument to the `clonebundle commands`
Mon, 19 Jun 2023 15:49:35 +0200 clonebundles: introduce a new write protocol command
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jun 2023 15:49:35 +0200] rev 50701
clonebundles: introduce a new write protocol command The old wire command does not take argument so we need a new command. We make that new command take argument to prepare it for the future (like narrow support).
Mon, 19 Jun 2023 11:28:45 +0200 clone-bundles: reorder some test section and add titles
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jun 2023 11:28:45 +0200] rev 50700
clone-bundles: reorder some test section and add titles This make things clearer around the inline clone bundle tests.
Mon, 19 Jun 2023 11:04:27 +0200 clone-bundle: rename the methods and wireprotole command
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 19 Jun 2023 11:04:27 +0200] rev 50699
clone-bundle: rename the methods and wireprotole command The current naming is very clone centric, since then, the url scheme was moved to a more generic wording to make room for other use-cases (e.g. pull bundles). We apply the same logic to the internal API and, very important prior to the release, to the wire protocol command.
Sun, 18 Jun 2023 00:04:53 +0200 delta-find: remove dead code intended to deal with forced delta reuse
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 18 Jun 2023 00:04:53 +0200] rev 50698
delta-find: remove dead code intended to deal with forced delta reuse Since the case was dealt with sooner (see XXX), we no longer need to deal with it in this part of the code.
Thu, 20 Apr 2023 15:56:58 -0400 library: incorporate demandimport into runpy invocation
Jason R. Coombs <jaraco@jaraco.com> [Thu, 20 Apr 2023 15:56:58 -0400] rev 50697
library: incorporate demandimport into runpy invocation
Mon, 17 Apr 2023 09:38:52 -0400 library: enable runpy invocation on mercurial package
Jason R. Coombs <jaraco@jaraco.com> [Mon, 17 Apr 2023 09:38:52 -0400] rev 50696
library: enable runpy invocation on mercurial package
Mon, 12 Jun 2023 16:51:08 +0200 match: add `filepath:` pattern to match an exact filepath relative to the root
Raphaël Gomès <rgomes@octobus.net> [Mon, 12 Jun 2023 16:51:08 +0200] rev 50695
match: add `filepath:` pattern to match an exact filepath relative to the root It's useful in certain automated workflows to make sure we recurse in directories whose name conflicts with files in other revisions. In addition it makes it possible to avoid building a potentially costly regex, improving performance when the set of files to match explicitly is large. The benchmark below are run in the following configuration : # data-env-vars.name = mozilla-central-2018-08-01-zstd-sparse-revlog # benchmark.name = files # benchmark.variants.rev = tip # benchmark.variants.files = all-list-filepath-sorted # bin-env-vars.hg.flavor = no-rust It also includes timings using the re2 engine (through the `google-re2` module) to show how much can be saved by just using a better regexp engine. Pattern time (seconds) time using re2 ----------------------------------------------------------- just "." 0.4 0.4 list of "filepath:…" 1.3 1.3 list of "path:…" 25.7 3.9 list of patterns 29.7 10.4 As you can see, Without re2, using "filepath:" instead of "path:" is a huge win. With re2, it is still about three times faster to not have to build the regex.
Sat, 17 Jun 2023 23:47:31 +0200 path: use the next `display` argument to deal with boolean stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 17 Jun 2023 23:47:31 +0200] rev 50694
path: use the next `display` argument to deal with boolean We have a generic mechanism that we can now use for the special case now.
Thu, 15 Jun 2023 09:51:29 +0200 path: display proper user facing value for pulled-delta-reuse-policy stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 15 Jun 2023 09:51:29 +0200] rev 50693
path: display proper user facing value for pulled-delta-reuse-policy The integer was not what the user expect nor what could be provided as a config value.
Thu, 15 Jun 2023 09:50:46 +0200 paths: add an argument to format the suboption display stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 15 Jun 2023 09:50:46 +0200] rev 50692
paths: add an argument to format the suboption display We will use it in the next function to the delta policy display. It could also be use to deal with the other special case in the command code, but that is unnecessary churn for stable so that part will go on default.
Fri, 09 Jun 2023 14:32:09 +0100 ui: fix crash in `hg paths` when pulled-delta-reuse-policy is in use stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Fri, 09 Jun 2023 14:32:09 +0100] rev 50691
ui: fix crash in `hg paths` when pulled-delta-reuse-policy is in use The crash is a result of [value] being an int, but being used as a bytestring.
Fri, 09 Jun 2023 14:31:40 +0100 ui: add a test demonstrating a crash in `hg paths` stable
Arseniy Alekseyev <aalekseyev@janestreet.com> [Fri, 09 Jun 2023 14:31:40 +0100] rev 50690
ui: add a test demonstrating a crash in `hg paths`
Sat, 17 Jun 2023 04:05:53 +0200 re2: fix reporting of availability in `hg debuginstall` stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 17 Jun 2023 04:05:53 +0200] rev 50689
re2: fix reporting of availability in `hg debuginstall` We add and use an official API to check is re2 is available. This prevent the bug previously in place were debuginstall was considering confusing `None` (i.e. non-initialized) and `False` (i.e. unavailable).
Sat, 17 Jun 2023 04:05:18 +0200 re: make _checkre2 a static method stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 17 Jun 2023 04:05:18 +0200] rev 50688
re: make _checkre2 a static method There is no need to it to be a method, so we make it at least a static method to make it easier to call.
Sat, 17 Jun 2023 04:02:25 +0200 re2: exit `_checkre2` early if calling it is useless stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Sat, 17 Jun 2023 04:02:25 +0200] rev 50687
re2: exit `_checkre2` early if calling it is useless If we already know if re2 is supported there is no need to run the check again. Stricly speaking we don't call it twice, but this seems a simple enough safeguard to include in this series.
Sun, 18 Jun 2023 00:09:39 +0200 branching: merge with stable
Pierre-Yves David <pierre-yves.david@octobus.net> [Sun, 18 Jun 2023 00:09:39 +0200] rev 50686
branching: merge with stable
(0) -30000 -10000 -3000 -1000 -120 +120 tip