tests/test-clone-stream-format.t
changeset 48693 de3ac3d2c60b
parent 48692 4933086bebf5
child 48800 cffc914cc01b
equal deleted inserted replaced
48692:4933086bebf5 48693:de3ac3d2c60b
     1 This file contains tests case that deal with format change accross stream clone
     1 This file contains tests case that deal with format change accross stream clone
     2 
     2 
     3 #require serve no-reposimplestore no-chg
     3 #require serve no-reposimplestore no-chg
     4 
     4 
     5 #testcases stream-legacy stream-bundle2
     5 #testcases stream-legacy stream-bundle2
       
     6 
       
     7   $ cat << EOF >> $HGRCPATH
       
     8   > [storage]
       
     9   > revlog.persistent-nodemap.slow-path=allow
       
    10   > EOF
     6 
    11 
     7 #if stream-legacy
    12 #if stream-legacy
     8   $ cat << EOF >> $HGRCPATH
    13   $ cat << EOF >> $HGRCPATH
     9   > [server]
    14   > [server]
    10   > bundle2.stream = no
    15   > bundle2.stream = no
    11   > EOF
    16   > EOF
    12 #endif
    17 #endif
    13 
    18 
    14 Initialize repository
    19 Initialize repository
    15 
    20 
    16   $ hg init server --config format.use-share-safe=yes
    21   $ hg init server --config format.use-share-safe=yes --config format.use-persistent-nodemap=yes
    17   $ cd server
    22   $ cd server
    18   $ sh $TESTDIR/testlib/stream_clone_setup.sh
    23   $ sh $TESTDIR/testlib/stream_clone_setup.sh
    19   adding 00changelog-ab349180a0405010.nd
    24   adding 00changelog-ab349180a0405010.nd
    20   adding 00changelog.d
    25   adding 00changelog.d
    21   adding 00changelog.i
    26   adding 00changelog.i
   343   $ hg debugrequires -R clone-add-share-safe | grep share-safe
   348   $ hg debugrequires -R clone-add-share-safe | grep share-safe
   344   share-safe
   349   share-safe
   345 
   350 
   346 
   351 
   347   $ killdaemons.py
   352   $ killdaemons.py
       
   353 
       
   354 
       
   355 Test streaming from/to repository without a persistent-nodemap
       
   356 ==============================================================
       
   357 
       
   358 persistent nodemap affects revlog, but they are easy to generate locally, so we allow it to be changed over a stream clone
       
   359 
       
   360   $ rm hg-*.pid errors-*.txt
       
   361   $ hg clone --pull --config format.use-persistent-nodemap=no server server-no-persistent-nodemap
       
   362   requesting all changes
       
   363   adding changesets
       
   364   adding manifests
       
   365   adding file changes
       
   366   added 5004 changesets with 1088 changes to 1088 files (+1 heads)
       
   367   new changesets 96ee1d7354c4:06ddac466af5
       
   368   updating to branch default
       
   369   0 files updated, 0 files merged, 0 files removed, 0 files unresolved
       
   370   $ hg verify -R server-no-persistent-nodemap
       
   371   checking changesets
       
   372   checking manifests
       
   373   crosschecking files in changesets and manifests
       
   374   checking files
       
   375   checked 5004 changesets with 1088 changes to 1088 files
       
   376   $ hg -R server serve -p $HGPORT -d --pid-file=hg-1.pid --error errors-1.txt
       
   377   $ cat hg-1.pid > $DAEMON_PIDS
       
   378   $ hg -R server-no-persistent-nodemap serve -p $HGPORT2 -d --pid-file=hg-2.pid --error errors-2.txt
       
   379   $ cat hg-2.pid >> $DAEMON_PIDS
       
   380   $ hg debugrequires -R server | grep persistent-nodemap
       
   381   persistent-nodemap
       
   382   $ hg debugrequires -R server-no-persistent-nodemap | grep persistent-nodemap
       
   383   [1]
       
   384   $ ls -1 server/.hg/store/00changelog*
       
   385   server/.hg/store/00changelog-*.nd (glob)
       
   386   server/.hg/store/00changelog.d
       
   387   server/.hg/store/00changelog.i
       
   388   server/.hg/store/00changelog.n
       
   389   $ ls -1 server-no-persistent-nodemap/.hg/store/00changelog*
       
   390   server-no-persistent-nodemap/.hg/store/00changelog.d
       
   391   server-no-persistent-nodemap/.hg/store/00changelog.i
       
   392 
       
   393 persistent-nodemap → no-persistent-nodemap cloning
       
   394 
       
   395   $ hg clone --quiet --stream -U http://localhost:$HGPORT clone-remove-persistent-nodemap --config format.use-persistent-nodemap=no
       
   396   $ cat errors-1.txt
       
   397   $ hg -R clone-remove-persistent-nodemap verify
       
   398   checking changesets
       
   399   checking manifests
       
   400   crosschecking files in changesets and manifests
       
   401   checking files
       
   402   checked 5004 changesets with 1088 changes to 1088 files
       
   403   $ hg debugrequires -R clone-remove-persistent-nodemap | grep persistent-nodemap
       
   404   [1]
       
   405 
       
   406 The persistent-nodemap files should no longer exists
       
   407 
       
   408   $ ls -1 clone-remove-persistent-nodemap/.hg/store/00changelog*
       
   409   clone-remove-persistent-nodemap/.hg/store/00changelog.d
       
   410   clone-remove-persistent-nodemap/.hg/store/00changelog.i
       
   411 
       
   412 
       
   413 no-persistent-nodemap → persistent-nodemap cloning
       
   414 
       
   415   $ hg clone --quiet --stream -U http://localhost:$HGPORT2 clone-add-persistent-nodemap --config format.use-persistent-nodemap=yes
       
   416   $ cat errors-2.txt
       
   417   $ hg -R clone-add-persistent-nodemap verify
       
   418   checking changesets
       
   419   checking manifests
       
   420   crosschecking files in changesets and manifests
       
   421   checking files
       
   422   checked 5004 changesets with 1088 changes to 1088 files
       
   423   $ hg debugrequires -R clone-add-persistent-nodemap | grep persistent-nodemap
       
   424   persistent-nodemap
       
   425 
       
   426 The persistent-nodemap files should exists
       
   427 
       
   428   $ ls -1 clone-add-persistent-nodemap/.hg/store/00changelog*
       
   429   clone-add-persistent-nodemap/.hg/store/00changelog-*.nd (glob)
       
   430   clone-add-persistent-nodemap/.hg/store/00changelog.d
       
   431   clone-add-persistent-nodemap/.hg/store/00changelog.i
       
   432   clone-add-persistent-nodemap/.hg/store/00changelog.n
       
   433 
       
   434 
       
   435   $ killdaemons.py