Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 11 Jan 2022 09:56:03 +0100] rev 48668
share-safe: add support for static-http repository
We need to read the second requirements file in the static-http case too. Otherwise, static-http would miss most of the requirements and misbehave.
Differential Revision: https://phab.mercurial-scm.org/D11996
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 11 Jan 2022 09:36:10 +0100] rev 48667
legacy-revlog: fix requirement computation when cloning legacy repo
The oldest format of repository does not have requirements so we need to treat
them differently when cloning such repository.
The previous code had issue whenever we start using a working-copy-only
requirements. The "legacy" format is signaled using an empty requirements list.
If we add working-copy-only requirements to it, this is no longer empty, and
no longer legacy.
The new code fix this, and will get fully tested in a couple of changeset, once the
share-safe become the default.
Differential Revision: https://phab.mercurial-scm.org/D11995
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 10 Jan 2022 12:48:35 +0100] rev 48666
requirements: do not warn about dropping share-safe, unless explicitly set
If we are just altering the default value, this is "fine". This will get tested
once share-safe become the default.
Differential Revision: https://phab.mercurial-scm.org/D11994
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 11 Jan 2022 06:40:44 +0100] rev 48665
sparse: take lock before writing requirements
with `share-safe`, we will also write file in the store. So we take the `lock`
before altering the requirements.
Differential Revision: https://phab.mercurial-scm.org/D11993
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 07 Jan 2022 16:30:11 +0100] rev 48664
largefiles: take lock before writing requirements
With `share-safe`, we will also write file in the store. We now take the `lock`
as needed.
Differential Revision: https://phab.mercurial-scm.org/D11992
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 07 Jan 2022 17:33:27 +0100] rev 48663
lfs: take lock before writing requirements
With `share-safe`, we will also write file in the store, so we take the store
lock before writing requirements.
Differential Revision: https://phab.mercurial-scm.org/D11991
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 11 Jan 2022 06:32:18 +0100] rev 48662
test: simpler requirements matching in test-repo-compengines.t
We focus on the requirements relevant for this tests.
Differential Revision: https://phab.mercurial-scm.org/D11990
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 10 Jan 2022 19:52:07 +0100] rev 48661
test: simpler requirements matching in test-lfs-largefiles.t
We focus on the requirements relevant for this tests.
Differential Revision: https://phab.mercurial-scm.org/D11989
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 10 Jan 2022 12:06:42 +0100] rev 48660
test: simpler requirements matching in test-sidedata.t
We focus on the requirements relevant for this tests.
Differential Revision: https://phab.mercurial-scm.org/D11988
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 10 Jan 2022 11:58:33 +0100] rev 48659
test: simpler requirement matching in test-revlog-v2.t
We narrow the matching toward the one we actually care about.
Differential Revision: https://phab.mercurial-scm.org/D11987
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 10 Jan 2022 19:46:54 +0100] rev 48658
test-copies: narrow the format check in test-copies-in-changeset.t
This will reduce the noise when touching unrelated format variants.
Differential Revision: https://phab.mercurial-scm.org/D11986
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 07 Jan 2022 17:32:25 +0100] rev 48657
tests: use debugrequires instead of grepping the file directly
With `share-safe`, the requirements are stored in multiple files so it seems
better to use the command that retrieve the information wherever it is.
Differential Revision: https://phab.mercurial-scm.org/D11985
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 11 Jan 2022 16:32:38 +0100] rev 48656
tests: use debugrequires in test-upgrade-repo.t
Whenever possible, we use the `hg debugrequires` command instead of directly
grepping the file.
Differential Revision: https://phab.mercurial-scm.org/D11984
Pierre-Yves David <pierre-yves.david@octobus.net> [Thu, 06 Jan 2022 17:15:49 +0100] rev 48655
test: do not use `which` to find an exec path in the test
Posix is deprecated `which` in favor of `command -v`… which does not provide the same feature.
Debian is warning about this deprecation and this get annoying.
Differential Revision: https://phab.mercurial-scm.org/D11983
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Jan 2022 18:17:55 +0100] rev 48654
stream-clone: stop considering working copy only requirements
Now that the ducks are properly aligned on there shelve, it becomes easy to fix
the list of requirements to consider for stream. We remove the working copy
specific ones and add some missing revlog specific ones.
Differential Revision: https://phab.mercurial-scm.org/D11982
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Jan 2022 00:19:04 +0100] rev 48653
stream-clone: also filter the requirement we put in the bundle 2
We were wrongly putting irrelevant requirements in the bundle and the receiving
side was getting confused, treating them as being missing while still putting
them in the `requires` file. Leading do corrupted repositories.
This changes fix stream-clone behavior regarding format when bundle-2 is
involved, so we now also test this cases.
Behavior with older version of Mercurial will be fine as they filter the
requirements they get from the bundle on their side anyway.
Differential Revision: https://phab.mercurial-scm.org/D12084
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Jan 2022 12:44:20 +0100] rev 48652
requirements: add an official `REVLOG_COMPRESSION_ZSTD` const
Such constant was missing and its value was missing from the set of requirements
that needs to be preserved through stream clone. This did not had any
consequence yet as the "bundle 2 does not filter its requirements" is shadowing
the issue.
However we are now in a situation where we can fix this issue. So lets do it
next.
With the preparation work on test, changing the streamreqs value only impact two
tests, where checking the full value seems to remains relevant.
Important note: Since older version of Mercurial used the old `supportedformat`
class attribute to check for stream requirement they supported, older version
will consider this requirements to prevent them from using streaming clone. Even
as they support this requirements for years. Pack for stable will be send to fix
it, but they will have to be backported to older version if needed.
Differential Revision: https://phab.mercurial-scm.org/D12083
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Jan 2022 20:35:04 +0100] rev 48651
stream-requirements: smoother matching in test-http-protocol.t
The value of `streamreqs` changes depending of the format used, but this is not
relevant for this tests. So we doing a smarter matching of the line to avoid
this test interfering with format changes in the future.
Differential Revision: https://phab.mercurial-scm.org/D12082
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Jan 2022 12:21:13 +0100] rev 48650
stream-requirements: smoother matching in test-ssh-bundle1.t
The value of `streamreqs` changes depending of the format used, but this is not
relevant for this tests. So we doing a smarter matching of the line to avoid
this test interfering with format changes in the future.
Differential Revision: https://phab.mercurial-scm.org/D12081
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Jan 2022 12:02:50 +0100] rev 48649
stream-requirements: smoother matching in test-ssh-proto.t
The value of `streamreqs` changes depending of the format used, but this is not
relevant for this tests. So we doing a smarter matching of the line to avoid
this test interfering with format changes in the future.
Differential Revision: https://phab.mercurial-scm.org/D12080
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Jan 2022 10:50:20 +0100] rev 48648
stream-requirements: smoother matching in test-hgweb-commands.t
The value of `streamreqs` changes depending of the format used, but this is not
relevant for this tests. So we doing a smarter matching of the line to avoid
this test interfering with format changes in the future.
Differential Revision: https://phab.mercurial-scm.org/D12079
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Jan 2022 10:50:08 +0100] rev 48647
stream-requirements: smoother matching in test-treemanifest.t
The value of `streamreqs` changes depending of the format used, but this is not
relevant for this tests. So we doing a smarter matching of the line to avoid
this test interfering with format changes in the future.
Differential Revision: https://phab.mercurial-scm.org/D12078
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Jan 2022 10:49:43 +0100] rev 48646
stream-requirements: smoother matching in test-ssh-proto-unbundle.t
The value of `streamreqs` changes depending of the format used, but this is not
relevant for this tests. So we doing a smarter matching of the line to avoid
this test interfering with format changes in the future.
Differential Revision: https://phab.mercurial-scm.org/D12077
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Jan 2022 12:58:18 +0100] rev 48645
test-bundle: split some variant in there own section
Same rational as the previous commit about test-bundle.t. These line are quite
volatile and having dedicated block will make their update clearer and simpler.
Differential Revision: https://phab.mercurial-scm.org/D12076
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Jan 2022 15:27:51 +0100] rev 48644
test-bundle: split each variant in there own section
Having conditional line matching for this kind of big block is quite
inconvenient to update. The new way should be simpler to maintain.
Differential Revision: https://phab.mercurial-scm.org/D12075
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Jan 2022 01:28:16 +0100] rev 48643
test-http-bad-server: abstract the `streamreqs` value
Now that socket closing are decided much closer to the actual closure, we can
use fuzzy matching for this part of the exchange that changes on a regular
basis.
This should make fixing bug in stream requirements and enabling new format much
simpler.
Differential Revision: https://phab.mercurial-scm.org/D12074
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 19:57:47 +0100] rev 48642
test-http-bad-server: use the new pattern-reading for a test-case
This test case is now less sensitive to change of unrelated bits of the
client/server exchange.
Since this introduce some churn in the output, we do it independently for each
test cases. This patch is the last of such changes, for both sent and recv
cases.
Differential Revision: https://phab.mercurial-scm.org/D12073
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 19:25:57 +0100] rev 48641
test-http-bad-server: use the new pattern-reading for a test-case
This test case is now less sensitive to change of unrelated bits of the
client/server exchange.
Since this introduce some churn in the output, we do it independently for each
test cases.
Differential Revision: https://phab.mercurial-scm.org/D12072
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 19:19:05 +0100] rev 48640
test-http-bad-server: use the new pattern-reading for a test-case
This test case is now less sensitive to change of unrelated bits of the
client/server exchange.
Since this introduce some churn in the output, we do it independently for each
test cases.
Differential Revision: https://phab.mercurial-scm.org/D12071
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 19:04:10 +0100] rev 48639
test-http-bad-server: use the new pattern-reading for a test-case
This test case is now less sensitive to change of unrelated bits of the
client/server exchange.
Since this introduce some churn in the output, we do it independently for each
test cases.
Differential Revision: https://phab.mercurial-scm.org/D12070