# HG changeset patch # User Pierre-Yves David # Date 1642180675 -3600 # Node ID eb5c33f1d08fadc3448c810da89ff2b2cd87d0de # Parent a3cf460a6b1b5b1ff32fa672710098d46cf08918 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 diff -r a3cf460a6b1b -r eb5c33f1d08f mercurial/requirements.py --- a/mercurial/requirements.py Tue Jan 18 00:19:04 2022 +0100 +++ b/mercurial/requirements.py Fri Jan 14 18:17:55 2022 +0100 @@ -109,13 +109,12 @@ BOOKMARKS_IN_STORE_REQUIREMENT, CHANGELOGV2_REQUIREMENT, COPIESSDC_REQUIREMENT, - DIRSTATE_V2_REQUIREMENT, GENERALDELTA_REQUIREMENT, + INTERNAL_PHASE_REQUIREMENT, NODEMAP_REQUIREMENT, REVLOG_COMPRESSION_ZSTD, REVLOGV1_REQUIREMENT, REVLOGV2_REQUIREMENT, - SHARESAFE_REQUIREMENT, SPARSEREVLOG_REQUIREMENT, TREEMANIFEST_REQUIREMENT, } diff -r a3cf460a6b1b -r eb5c33f1d08f tests/test-clone-stream-format.t --- a/tests/test-clone-stream-format.t Tue Jan 18 00:19:04 2022 +0100 +++ b/tests/test-clone-stream-format.t Fri Jan 14 18:17:55 2022 +0100 @@ -13,7 +13,7 @@ Initialize repository - $ hg init server + $ hg init server --config format.use-share-safe=yes $ cd server $ sh $TESTDIR/testlib/stream_clone_setup.sh adding 00changelog-ab349180a0405010.nd @@ -277,7 +277,65 @@ crosschecking files in changesets and manifests checking files checked 3 changesets with 1088 changes to 1088 files - $ hg debugrequires -R clone-from-share | grep share + $ hg debugrequires -R clone-from-share | egrep 'share$' [1] $ killdaemons.py + +Test streaming from/to repository without a share-safe +====================================================== + + $ rm hg-*.pid errors-*.txt + $ hg clone --pull --config format.use-share-safe=no server server-no-share-safe + requesting all changes + adding changesets + adding manifests + adding file changes + added 3 changesets with 1088 changes to 1088 files + new changesets 96ee1d7354c4:5223b5e3265f + updating to branch default + 1088 files updated, 0 files merged, 0 files removed, 0 files unresolved + $ hg verify -R server-no-share-safe + checking changesets + checking manifests + crosschecking files in changesets and manifests + checking files + checked 3 changesets with 1088 changes to 1088 files + $ hg -R server serve -p $HGPORT -d --pid-file=hg-1.pid --error errors-1.txt + $ cat hg-1.pid > $DAEMON_PIDS + $ hg -R server-no-share-safe serve -p $HGPORT2 -d --pid-file=hg-2.pid --error errors-2.txt + $ cat hg-2.pid >> $DAEMON_PIDS + $ hg debugrequires -R server | grep share-safe + share-safe + $ hg debugrequires -R server-no-share-safe | grep share-safe + [1] + +share-safe → no-share-safe cloning + + $ hg clone --quiet --stream -U http://localhost:$HGPORT clone-remove-share-safe --config format.use-share-safe=no + $ cat errors-1.txt + $ hg -R clone-remove-share-safe verify + checking changesets + checking manifests + crosschecking files in changesets and manifests + checking files + checked 3 changesets with 1088 changes to 1088 files + $ hg debugrequires -R clone-remove-share-safe | grep share-safe + [1] + + +no-share-safe → share-safe cloning + + $ hg clone --quiet --stream -U http://localhost:$HGPORT2 clone-add-share-safe --config format.use-share-safe=yes + $ cat errors-2.txt + $ hg -R clone-add-share-safe verify + checking changesets + checking manifests + crosschecking files in changesets and manifests + checking files + checked 3 changesets with 1088 changes to 1088 files + $ hg debugrequires -R clone-add-share-safe | grep share-safe + share-safe + + + $ killdaemons.py