Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 01:07:50 +0100] rev 48610
test-http-bad-server: track close condition in an object
In order to make the logic more advanced, we need to unify it. To unify it, we
introduce a small object that will be responsible for tracking and enforcing
"premature socket close" conditions for both proxy object (socketproxy and
fileobjectproxy).
More logic will be moved into the object in later changesets.
Differential Revision: https://phab.mercurial-scm.org/D12041
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 19 Jan 2022 19:14:17 +0100] rev 48609
test-http-bad-server: use more readable name for variable
This make the code more accessible overall.
Differential Revision: https://phab.mercurial-scm.org/D12040
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 02:07:13 +0100] rev 48608
test-http-bad-server: align output by using `;`
This is the only message using a `,` instead of `;` and that seems
unintentional. I am unifying the message before unigying the code.
Differential Revision: https://phab.mercurial-scm.org/D12039
Pierre-Yves David <pierre-yves.david@octobus.net> [Wed, 19 Jan 2022 19:04:55 +0100] rev 48607
test-http-bad-server: highlight each test with section
Small "documentation" change to highlight each individual tests better.
Differential Revision: https://phab.mercurial-scm.org/D12038
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 21 Jan 2022 20:50:40 +0100] rev 48606
test-http-bad-server: rename config to use `-`
This make things much more readable.
Differential Revision: https://phab.mercurial-scm.org/D12037
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Jan 2022 21:29:43 +0100] rev 48605
test-http-bad-server: move the extension in `testlib`
This seems like a better location for it.
Differential Revision: https://phab.mercurial-scm.org/D12036
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 17 Jan 2022 19:29:41 +0100] rev 48604
requirements: remove the `localrepo.supportedformat` attribute
It is not longer used anywhere.
Differential Revision: https://phab.mercurial-scm.org/D12035
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 17 Jan 2022 22:48:16 +0100] rev 48603
requirements: sort _basesupported
This will make the next changeset clearer.
Differential Revision: https://phab.mercurial-scm.org/D12034
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 17 Jan 2022 19:28:10 +0100] rev 48602
requirements: move the comment about manifestv2 in the module
This is about requirements, so lets put it into the requirements module.
We are about to remove code it was previously attached too.
Differential Revision: https://phab.mercurial-scm.org/D12033
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 17 Jan 2022 19:26:36 +0100] rev 48601
stream-clone: add a explicit set list requirements relevant to stream clone
This set explicitly lists all the requirements that "stream clone" will
preserve. Any other one will not be preserved.
The role of listing the relevant one was previously filled by
`repo.supportedformat`, but it seems clearer to use that such global and
explicit set. The `repo.supportedformat` attribute will be cleaned up in a later
changeset
The true meaning of `repo.supportedformat` vs `repo._basesupported` was lost
over time so, the content is currently bad. For example, `dirstate-v2` is
currently considered relevant to the stream clone, or internal phase is
missing. We kept the same content in this changeset and we will fix them later.
Differential Revision: https://phab.mercurial-scm.org/D12032
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 24 Jan 2022 11:49:06 +0100] rev 48600
stream-clone: filter possible missing requirements using all supported one
The `supportedformat` requirements is missing some important requirements and it
seems better to filter out with all requirements we know, not just an
"arbitrary" subset.
This is especially relevant as we about to phase out the `supportedformat` class
attribute.
(a backport of this change to stable should be sent soon).
Differential Revision: https://phab.mercurial-scm.org/D12031
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 17 Jan 2022 19:18:20 +0100] rev 48599
requirements: move "bookmark in store" requirements in the right module
There seems to be no reasons to not have it with the others.
Differential Revision: https://phab.mercurial-scm.org/D12030
Pierre-Yves David <pierre-yves.david@octobus.net> [Mon, 17 Jan 2022 18:51:47 +0100] rev 48598
stream-clone: add a explicit test for format change during stream clone
They are different kind of requirements, the one which impact the data storage
and are relevant to the files being streamed and the one which does not. For
example some requirements are only relevant to the working copy, like sparse, or
dirstate-v2.
Since they are irrelevant to the content being streamed, they do not prevent the
receiving side to use streaming clone and mercurial skip adverting them over
the wire and, ideally, within the bundle.
In addition, this let the client decide to use whichever format it desire for
the part that does not affect the store itself. So the configuration related to
these format are used as normal when doing a streaming clone.
In practice, the feature was not really tested and is badly broken with bundle-2,
since the requirements are not filtered out from the stream bundle.
So we start with adding simple tests as a good base before the fix and adjust
the feature.
Differential Revision: https://phab.mercurial-scm.org/D12029
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Jan 2022 18:02:25 +0100] rev 48597
stream-clone: factor computation of requirement of a stream clone
This gather code duplicated in multiple place and will make it easier to modify
it safely in the future.
Differential Revision: https://phab.mercurial-scm.org/D12028