tests/test-persistent-nodemap.t
branchstable
changeset 53028 89ab2459f62a
parent 50722 7e5be4a7cda7
child 53031 e705fec4a03f
--- a/tests/test-persistent-nodemap.t	Tue Feb 25 20:21:43 2025 -0500
+++ b/tests/test-persistent-nodemap.t	Wed Mar 05 11:41:45 2025 +0100
@@ -913,9 +913,11 @@
 standard clone
 --------------
 
-The persistent nodemap should exist after a streaming clone
+The persistent nodemap should exist after a normal clone
 
   $ hg clone --pull --quiet -U test-repo standard-clone
+  $ hg debugformat -R standard-clone | grep persistent-nodemap
+  persistent-nodemap: yes
   $ ls -1 standard-clone/.hg/store/ | grep -E '00(changelog|manifest)(\.n|-.*\.nd)'
   00changelog-*.nd (glob)
   00changelog.n
@@ -929,6 +931,19 @@
   data-unused: 0
   data-unused: 0.000%
 
+standard clone, no nodemap requested
+-------------------------------------
+
+If persistent normal is requested to not be here, it should not exist after a normal clone
+
+  $ hg clone --pull --quiet -U test-repo standard-clone-no-nm \
+  >     --config format.use-persistent-nodemap=no
+  $ hg debugformat -R standard-clone-no-nm | grep persistent-nodemap
+  persistent-nodemap:  no
+  $ ls -1 standard-clone-no-nm/.hg/store/ | grep -E '00(changelog|manifest)(\.n|-.*\.nd)'
+  [1]
+  $ hg -R standard-clone-no-nm debugnodemap --metadata
+
 
 local clone
 ------------
@@ -936,6 +951,8 @@
 The persistent nodemap should exist after a streaming clone
 
   $ hg clone -U test-repo local-clone
+  $ hg debugformat -R local-clone | grep persistent-nodemap
+  persistent-nodemap: yes
   $ ls -1 local-clone/.hg/store/ | grep -E '00(changelog|manifest)(\.n|-.*\.nd)'
   00changelog-*.nd (glob)
   00changelog.n
@@ -949,6 +966,44 @@
   data-unused: 0
   data-unused: 0.000%
 
+stream clone
+------------
+
+  $ hg clone -U  --stream ssh://user@dummy/test-repo stream-clone --quiet
+  $ hg debugformat -R stream-clone | grep persistent-nodemap
+  persistent-nodemap: yes
+  $ ls -1 stream-clone/.hg/store/ | grep -E '00(changelog|manifest)(\.n|-.*\.nd)'
+  00changelog-*.nd (glob)
+  00changelog.n
+  00manifest-*.nd (glob)
+  00manifest.n
+  $ hg -R stream-clone debugnodemap --metadata
+  uid: * (glob)
+  tip-rev: 5005
+  tip-node: 90d5d3ba2fc47db50f712570487cb261a68c8ffe
+  data-length: 121088
+  data-unused: 0
+  data-unused: 0.000%
+
+stream requesting no persistent nodemap
+---------------------------------------
+
+Even if persistent nodemap affect the store, there is logic to stream clone
+without it.
+
+This helps client without supports for persistent nodemap.
+
+  $ hg clone -U --stream ssh://user@dummy/test-repo stream-clone-no-nm \
+  >     --config format.use-persistent-nodemap=no \
+  >     --config devel.persistent-nodemap=no \
+  >     --config revlog.persistent-nodemap.slow-path=no \
+  >     --quiet
+  $ hg debugformat -R stream-clone-no-nm | grep persistent-nodemap
+  persistent-nodemap:  no
+  $ ls -1 stream-clone-no-nm/.hg/store/ | grep -E '00(changelog|manifest)(\.n|-.*\.nd)'
+  [1]
+  $ hg -R stream-clone-no-nm debugnodemap --metadata
+
 Test various corruption case
 ============================