--- a/mercurial/requirements.py Tue Feb 25 20:21:43 2025 -0500
+++ b/mercurial/requirements.py Wed Mar 05 11:41:45 2025 +0100
@@ -105,22 +105,13 @@
DIRSTATE_V2_REQUIREMENT,
}
-# List of requirement that impact "stream-clone" (and hardlink clone) and
-# cannot be changed in such cases.
-#
-# requirements not in this list are safe to be altered during stream-clone.
+# List of requirement that do not impact "stream-clone" (and hardlink clone) and
+# can be ignored in such case.
#
-# note: the list is currently inherited from previous code and miss some relevant requirement while containing some irrelevant ones.
-STREAM_FIXED_REQUIREMENTS = {
- ARCHIVED_PHASE_REQUIREMENT,
- BOOKMARKS_IN_STORE_REQUIREMENT,
- CHANGELOGV2_REQUIREMENT,
- COPIESSDC_REQUIREMENT,
- GENERALDELTA_REQUIREMENT,
- INTERNAL_PHASE_REQUIREMENT,
- REVLOG_COMPRESSION_ZSTD,
- REVLOGV1_REQUIREMENT,
- REVLOGV2_REQUIREMENT,
- SPARSEREVLOG_REQUIREMENT,
- TREEMANIFEST_REQUIREMENT,
+# requirements not in this list safe to be altered during stream-clone.
+STREAM_IGNORABLE_REQUIREMENTS = WORKING_DIR_REQUIREMENTS | {
+ DOTENCODE_REQUIREMENT, # abstracted by the vfs layer
+ FNCACHE_REQUIREMENT, # abstracted by the vfs layer
+ STORE_REQUIREMENT, # abstracted by the vfs layer
+ NODEMAP_REQUIREMENT, # Have some special logic to handle that case
}