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
Pierre-Yves David <pierre-yves.david@octobus.net> [Fri, 14 Jan 2022 17:57:49 +0100] rev 48596
stream-clone: factor computation of new clone requirement out
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/D12027
Pierre-Yves David <pierre-yves.david@octobus.net> [Tue, 18 Jan 2022 00:07:43 +0100] rev 48595
stream-clone: drop some outdated lines in test-stream-bundle-v2.t
These line refer to a "dirstate-v2" variant that is no longer in use. The
associated line drifted out of sync with reality.
Differential Revision: https://phab.mercurial-scm.org/D12026
Martin von Zweigbergk <martinvonz@google.com> [Mon, 24 Jan 2022 08:35:14 -0800] rev 48594
relnotes: add note about changed labels texts
Differential Revision: https://phab.mercurial-scm.org/D12085