tests/test-clone-stream-format.t
changeset 48693 de3ac3d2c60b
parent 48692 4933086bebf5
child 48800 cffc914cc01b
--- a/tests/test-clone-stream-format.t	Thu Jan 27 15:22:09 2022 +0100
+++ b/tests/test-clone-stream-format.t	Thu Jan 27 22:24:11 2022 +0100
@@ -4,6 +4,11 @@
 
 #testcases stream-legacy stream-bundle2
 
+  $ cat << EOF >> $HGRCPATH
+  > [storage]
+  > revlog.persistent-nodemap.slow-path=allow
+  > EOF
+
 #if stream-legacy
   $ cat << EOF >> $HGRCPATH
   > [server]
@@ -13,7 +18,7 @@
 
 Initialize repository
 
-  $ hg init server --config format.use-share-safe=yes
+  $ hg init server --config format.use-share-safe=yes --config format.use-persistent-nodemap=yes
   $ cd server
   $ sh $TESTDIR/testlib/stream_clone_setup.sh
   adding 00changelog-ab349180a0405010.nd
@@ -345,3 +350,86 @@
 
 
   $ killdaemons.py
+
+
+Test streaming from/to repository without a persistent-nodemap
+==============================================================
+
+persistent nodemap affects revlog, but they are easy to generate locally, so we allow it to be changed over a stream clone
+
+  $ rm hg-*.pid errors-*.txt
+  $ hg clone --pull --config format.use-persistent-nodemap=no server server-no-persistent-nodemap
+  requesting all changes
+  adding changesets
+  adding manifests
+  adding file changes
+  added 5004 changesets with 1088 changes to 1088 files (+1 heads)
+  new changesets 96ee1d7354c4:06ddac466af5
+  updating to branch default
+  0 files updated, 0 files merged, 0 files removed, 0 files unresolved
+  $ hg verify -R server-no-persistent-nodemap
+  checking changesets
+  checking manifests
+  crosschecking files in changesets and manifests
+  checking files
+  checked 5004 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-persistent-nodemap serve -p $HGPORT2 -d --pid-file=hg-2.pid --error errors-2.txt
+  $ cat hg-2.pid >> $DAEMON_PIDS
+  $ hg debugrequires -R server | grep persistent-nodemap
+  persistent-nodemap
+  $ hg debugrequires -R server-no-persistent-nodemap | grep persistent-nodemap
+  [1]
+  $ ls -1 server/.hg/store/00changelog*
+  server/.hg/store/00changelog-*.nd (glob)
+  server/.hg/store/00changelog.d
+  server/.hg/store/00changelog.i
+  server/.hg/store/00changelog.n
+  $ ls -1 server-no-persistent-nodemap/.hg/store/00changelog*
+  server-no-persistent-nodemap/.hg/store/00changelog.d
+  server-no-persistent-nodemap/.hg/store/00changelog.i
+
+persistent-nodemap → no-persistent-nodemap cloning
+
+  $ hg clone --quiet --stream -U http://localhost:$HGPORT clone-remove-persistent-nodemap --config format.use-persistent-nodemap=no
+  $ cat errors-1.txt
+  $ hg -R clone-remove-persistent-nodemap verify
+  checking changesets
+  checking manifests
+  crosschecking files in changesets and manifests
+  checking files
+  checked 5004 changesets with 1088 changes to 1088 files
+  $ hg debugrequires -R clone-remove-persistent-nodemap | grep persistent-nodemap
+  [1]
+
+The persistent-nodemap files should no longer exists
+
+  $ ls -1 clone-remove-persistent-nodemap/.hg/store/00changelog*
+  clone-remove-persistent-nodemap/.hg/store/00changelog.d
+  clone-remove-persistent-nodemap/.hg/store/00changelog.i
+
+
+no-persistent-nodemap → persistent-nodemap cloning
+
+  $ hg clone --quiet --stream -U http://localhost:$HGPORT2 clone-add-persistent-nodemap --config format.use-persistent-nodemap=yes
+  $ cat errors-2.txt
+  $ hg -R clone-add-persistent-nodemap verify
+  checking changesets
+  checking manifests
+  crosschecking files in changesets and manifests
+  checking files
+  checked 5004 changesets with 1088 changes to 1088 files
+  $ hg debugrequires -R clone-add-persistent-nodemap | grep persistent-nodemap
+  persistent-nodemap
+
+The persistent-nodemap files should exists
+
+  $ ls -1 clone-add-persistent-nodemap/.hg/store/00changelog*
+  clone-add-persistent-nodemap/.hg/store/00changelog-*.nd (glob)
+  clone-add-persistent-nodemap/.hg/store/00changelog.d
+  clone-add-persistent-nodemap/.hg/store/00changelog.i
+  clone-add-persistent-nodemap/.hg/store/00changelog.n
+
+
+  $ killdaemons.py