tests/test-remotefilelog-repack.t
changeset 40502 6d64e2abe8d3
parent 40495 3a333a582d7b
child 40506 10c10da14c5d
equal deleted inserted replaced
40501:f21543d7f611 40502:6d64e2abe8d3
   291   $ rm -rf $CACHEDIR/master/packs/*
   291   $ rm -rf $CACHEDIR/master/packs/*
   292   $ cat >> .hg/hgrc <<EOF
   292   $ cat >> .hg/hgrc <<EOF
   293   > [remotefilelog]
   293   > [remotefilelog]
   294   > data.generations=60
   294   > data.generations=60
   295   >   150
   295   >   150
   296   > fetchpacks=True
       
   297   > EOF
   296   > EOF
   298 
   297 
   299 Single pack - repack does nothing
   298 Single pack - repack does nothing
   300   $ hg prefetch -r 0
   299   $ hg prefetch -r 0
   301   1 files fetched over 1 fetches - (0 misses, 100.00% hit ratio) over * (glob)
   300   1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over * (glob)
   302   $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack
   301   $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack
   303   -r--r--r--      59 5b7dec902026f0cddb0ef8acb62f27b5698494d4.datapack
   302   [1]
   304   $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack
   303   $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack
   305   -r--r--r--      90 c3399b56e035f73c3295276ed098235a08a0ed8c.histpack
   304   [1]
   306   $ hg repack --incremental
   305   $ hg repack --incremental
   307   $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack
   306   $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack
   308   -r--r--r--      59 5b7dec902026f0cddb0ef8acb62f27b5698494d4.datapack
   307   -r--r--r--      67 b5a62f3496ccbd2479497cdbc7345f3304735f33.datapack
   309   $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack
   308   $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack
   310   -r--r--r--      90 c3399b56e035f73c3295276ed098235a08a0ed8c.histpack
   309   -r--r--r--      90 c3399b56e035f73c3295276ed098235a08a0ed8c.histpack
   311 
   310 
   312 3 gen1 packs, 1 gen0 pack - packs 3 gen1 into 1
   311 3 gen1 packs, 1 gen0 pack - packs 3 gen1 into 1
   313   $ hg prefetch -r 1
   312   $ hg prefetch -r 1
   314   1 files fetched over 1 fetches - (0 misses, 100.00% hit ratio) over * (glob)
   313   1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over * (glob)
   315   $ hg prefetch -r 2
   314   $ hg prefetch -r 2
   316   1 files fetched over 1 fetches - (0 misses, 100.00% hit ratio) over * (glob)
   315   1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over * (glob)
   317   $ hg prefetch -r 3
   316   $ hg prefetch -r 38
   318   1 files fetched over 1 fetches - (0 misses, 100.00% hit ratio) over * (glob)
   317   abort: unknown revision '38'!
   319   $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack
   318   [255]
   320   -r--r--r--      59 5b7dec902026f0cddb0ef8acb62f27b5698494d4.datapack
   319   $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack
   321   -r--r--r--      65 6c499d21350d79f92fd556b4b7a902569d88e3c9.datapack
   320   -r--r--r--      67 b5a62f3496ccbd2479497cdbc7345f3304735f33.datapack
   322   -r--r--r--      61 817d294043bd21a3de01f807721971abe45219ce.datapack
   321   $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack
   323   -r--r--r--      63 ff45add45ab3f59c4f75efc6a087d86c821219d6.datapack
       
   324   $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack
       
   325   -r--r--r--     254 077e7ce5dfe862dc40cc8f3c9742d96a056865f2.histpack
       
   326   -r--r--r--     336 094b530486dad4427a0faf6bcbc031571b99ca24.histpack
       
   327   -r--r--r--     172 276d308429d0303762befa376788300f0310f90e.histpack
       
   328   -r--r--r--      90 c3399b56e035f73c3295276ed098235a08a0ed8c.histpack
   322   -r--r--r--      90 c3399b56e035f73c3295276ed098235a08a0ed8c.histpack
   329 
   323 
   330 For the data packs, setting the limit for the repackmaxpacksize to be 64 such
   324 For the data packs, setting the limit for the repackmaxpacksize to be 64 such
   331 that data pack with size 65 is more than the limit. This effectively ensures
   325 that data pack with size 65 is more than the limit. This effectively ensures
   332 that no generation has 3 packs and therefore, no packs are chosen for the
   326 that no generation has 3 packs and therefore, no packs are chosen for the
   333 incremental repacking. As for the history packs, setting repackmaxpacksize to be
   327 incremental repacking. As for the history packs, setting repackmaxpacksize to be
   334 0 which should always result in no repacking.
   328 0 which should always result in no repacking.
   335   $ hg repack --incremental --config remotefilelog.data.repackmaxpacksize=64 \
   329   $ hg repack --incremental --config remotefilelog.data.repackmaxpacksize=64 \
   336   > --config remotefilelog.history.repackmaxpacksize=0
   330   > --config remotefilelog.history.repackmaxpacksize=0
   337   $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack
   331   $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack
   338   -r--r--r--      59 5b7dec902026f0cddb0ef8acb62f27b5698494d4.datapack
   332   -r--r--r--     147 935861cae0be6ce41a0d47a529e4d097e9e68a69.datapack
   339   -r--r--r--      65 6c499d21350d79f92fd556b4b7a902569d88e3c9.datapack
   333   -r--r--r--      67 b5a62f3496ccbd2479497cdbc7345f3304735f33.datapack
   340   -r--r--r--      61 817d294043bd21a3de01f807721971abe45219ce.datapack
       
   341   -r--r--r--      63 ff45add45ab3f59c4f75efc6a087d86c821219d6.datapack
       
   342   $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack
   334   $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack
   343   -r--r--r--     254 077e7ce5dfe862dc40cc8f3c9742d96a056865f2.histpack
   335   -r--r--r--     254 077e7ce5dfe862dc40cc8f3c9742d96a056865f2.histpack
   344   -r--r--r--     336 094b530486dad4427a0faf6bcbc031571b99ca24.histpack
       
   345   -r--r--r--     172 276d308429d0303762befa376788300f0310f90e.histpack
       
   346   -r--r--r--      90 c3399b56e035f73c3295276ed098235a08a0ed8c.histpack
   336   -r--r--r--      90 c3399b56e035f73c3295276ed098235a08a0ed8c.histpack
   347 
   337 
   348 Setting limit for the repackmaxpacksize to be the size of the biggest pack file
   338 Setting limit for the repackmaxpacksize to be the size of the biggest pack file
   349 which ensures that it is effectively ignored in the incremental repacking.
   339 which ensures that it is effectively ignored in the incremental repacking.
   350   $ hg repack --incremental --config remotefilelog.data.repackmaxpacksize=65 \
   340   $ hg repack --incremental --config remotefilelog.data.repackmaxpacksize=65 \
   351   > --config remotefilelog.history.repackmaxpacksize=336
   341   > --config remotefilelog.history.repackmaxpacksize=336
   352   $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack
   342   $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack
   353   -r--r--r--      59 5b7dec902026f0cddb0ef8acb62f27b5698494d4.datapack
   343   -r--r--r--     147 935861cae0be6ce41a0d47a529e4d097e9e68a69.datapack
   354   -r--r--r--     225 8fe685c56f6f7edf550bfcec74eeecc5f3c2ba15.datapack
   344   -r--r--r--      67 b5a62f3496ccbd2479497cdbc7345f3304735f33.datapack
   355   $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack
   345   $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack
   356   -r--r--r--     336 094b530486dad4427a0faf6bcbc031571b99ca24.histpack
   346   -r--r--r--     254 077e7ce5dfe862dc40cc8f3c9742d96a056865f2.histpack
       
   347   -r--r--r--      90 c3399b56e035f73c3295276ed098235a08a0ed8c.histpack
   357 
   348 
   358 1 gen3 pack, 1 gen0 pack - does nothing
   349 1 gen3 pack, 1 gen0 pack - does nothing
   359   $ hg repack --incremental
   350   $ hg repack --incremental
   360   $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack
   351   $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack
   361   -r--r--r--      59 5b7dec902026f0cddb0ef8acb62f27b5698494d4.datapack
   352   -r--r--r--     147 935861cae0be6ce41a0d47a529e4d097e9e68a69.datapack
   362   -r--r--r--     225 8fe685c56f6f7edf550bfcec74eeecc5f3c2ba15.datapack
   353   -r--r--r--      67 b5a62f3496ccbd2479497cdbc7345f3304735f33.datapack
   363   $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack
   354   $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack
   364   -r--r--r--     336 094b530486dad4427a0faf6bcbc031571b99ca24.histpack
   355   -r--r--r--     254 077e7ce5dfe862dc40cc8f3c9742d96a056865f2.histpack
       
   356   -r--r--r--      90 c3399b56e035f73c3295276ed098235a08a0ed8c.histpack
   365 
   357 
   366 Pull should run background repack
   358 Pull should run background repack
   367   $ cat >> .hg/hgrc <<EOF
   359   $ cat >> .hg/hgrc <<EOF
   368   > [remotefilelog]
   360   > [remotefilelog]
   369   > backgroundrepack=True
   361   > backgroundrepack=True
   370   > EOF
   362   > EOF
   371   $ clearcache
   363   $ clearcache
   372   $ hg prefetch -r 0
   364   $ hg prefetch -r 0
   373   1 files fetched over 1 fetches - (0 misses, 100.00% hit ratio) over * (glob)
   365   1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over * (glob)
   374   $ hg prefetch -r 1
   366   $ hg prefetch -r 1
   375   1 files fetched over 1 fetches - (0 misses, 100.00% hit ratio) over * (glob)
   367   1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over * (glob)
   376   $ hg prefetch -r 2
   368   $ hg prefetch -r 2
   377   1 files fetched over 1 fetches - (0 misses, 100.00% hit ratio) over * (glob)
   369   1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over * (glob)
   378   $ hg prefetch -r 3
   370   $ hg prefetch -r 3
   379   1 files fetched over 1 fetches - (0 misses, 100.00% hit ratio) over * (glob)
   371   1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over * (glob)
   380   $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack
       
   381   -r--r--r--      59 5b7dec902026f0cddb0ef8acb62f27b5698494d4.datapack
       
   382   -r--r--r--      65 6c499d21350d79f92fd556b4b7a902569d88e3c9.datapack
       
   383   -r--r--r--      61 817d294043bd21a3de01f807721971abe45219ce.datapack
       
   384   -r--r--r--      63 ff45add45ab3f59c4f75efc6a087d86c821219d6.datapack
       
   385   $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack
       
   386   -r--r--r--     254 077e7ce5dfe862dc40cc8f3c9742d96a056865f2.histpack
       
   387   -r--r--r--     336 094b530486dad4427a0faf6bcbc031571b99ca24.histpack
       
   388   -r--r--r--     172 276d308429d0303762befa376788300f0310f90e.histpack
       
   389   -r--r--r--      90 c3399b56e035f73c3295276ed098235a08a0ed8c.histpack
       
   390 
   372 
   391   $ hg pull
   373   $ hg pull
   392   pulling from ssh://user@dummy/master
   374   pulling from ssh://user@dummy/master
   393   searching for changes
   375   searching for changes
   394   no changes found
   376   no changes found
   395   (running background incremental repack)
   377   (running background incremental repack)
   396   $ sleep 0.5
   378   $ sleep 0.5
   397   $ hg debugwaitonrepack >/dev/null 2>&1
   379   $ hg debugwaitonrepack >/dev/null 2>&1
   398   $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack
   380   $ ls_l $TESTTMP/hgcache/master/packs/ | grep datapack
   399   -r--r--r--      59 5b7dec902026f0cddb0ef8acb62f27b5698494d4.datapack
   381   -r--r--r--     301 09b8bf49256b3fc2175977ba97d6402e91a9a604.datapack
   400   -r--r--r--     225 8fe685c56f6f7edf550bfcec74eeecc5f3c2ba15.datapack
       
   401   $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack
   382   $ ls_l $TESTTMP/hgcache/master/packs/ | grep histpack
   402   -r--r--r--     336 094b530486dad4427a0faf6bcbc031571b99ca24.histpack
   383   -r--r--r--     336 094b530486dad4427a0faf6bcbc031571b99ca24.histpack
   403 
   384 
   404 Test environment variable resolution
   385 Test environment variable resolution
   405   $ CACHEPATH=$TESTTMP/envcache hg prefetch --config 'remotefilelog.cachepath=$CACHEPATH'
   386   $ CACHEPATH=$TESTTMP/envcache hg prefetch --config 'remotefilelog.cachepath=$CACHEPATH'
   406   1 files fetched over 1 fetches - (0 misses, 100.00% hit ratio) over * (glob)
   387   1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over * (glob)
   407   $ find $TESTTMP/envcache | sort
   388   $ find $TESTTMP/envcache | sort
   408   $TESTTMP/envcache
   389   $TESTTMP/envcache
   409   $TESTTMP/envcache/master
   390   $TESTTMP/envcache/master
   410   $TESTTMP/envcache/master/packs
   391   $TESTTMP/envcache/master/95
   411   $TESTTMP/envcache/master/packs/54afbfda203716c1aa2636029ccc0df18165129e.dataidx
   392   $TESTTMP/envcache/master/95/cb0bfd2977c761298d9624e4b4d4c72a39974a
   412   $TESTTMP/envcache/master/packs/54afbfda203716c1aa2636029ccc0df18165129e.datapack
   393   $TESTTMP/envcache/master/95/cb0bfd2977c761298d9624e4b4d4c72a39974a/577959738234a1eb241ed3ed4b22a575833f56e0
   413   $TESTTMP/envcache/master/packs/dcebd8e8d4d97ee88e40dd8f92d8678c10e1a3ad.histidx
   394   $TESTTMP/envcache/repos
   414   $TESTTMP/envcache/master/packs/dcebd8e8d4d97ee88e40dd8f92d8678c10e1a3ad.histpack
       
   415 
   395 
   416 Test local remotefilelog blob is correct when based on a pack
   396 Test local remotefilelog blob is correct when based on a pack
   417   $ hg prefetch -r .
   397   $ hg prefetch -r .
   418   1 files fetched over 1 fetches - (0 misses, 100.00% hit ratio) over * (glob)
   398   1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over * (glob)
   419   $ echo >> y
   399   $ echo >> y
   420   $ hg commit -m y2
   400   $ hg commit -m y2
   421   $ hg debugremotefilelog .hg/store/data/95cb0bfd2977c761298d9624e4b4d4c72a39974a/b70860edba4f8242a1d52f2a94679dd23cb76808
   401   $ hg debugremotefilelog .hg/store/data/95cb0bfd2977c761298d9624e4b4d4c72a39974a/b70860edba4f8242a1d52f2a94679dd23cb76808
   422   size: 9 bytes
   402   size: 9 bytes
   423   path: .hg/store/data/95cb0bfd2977c761298d9624e4b4d4c72a39974a/b70860edba4f8242a1d52f2a94679dd23cb76808 
   403   path: .hg/store/data/95cb0bfd2977c761298d9624e4b4d4c72a39974a/b70860edba4f8242a1d52f2a94679dd23cb76808 
   432   1406e7411862 => 000000000000  000000000000  b292c1e3311f  
   412   1406e7411862 => 000000000000  000000000000  b292c1e3311f  
   433 
   413 
   434 Test limiting the max delta chain length
   414 Test limiting the max delta chain length
   435   $ hg repack --config packs.maxchainlen=1
   415   $ hg repack --config packs.maxchainlen=1
   436   $ hg debugdatapack $TESTTMP/hgcache/master/packs/*.dataidx
   416   $ hg debugdatapack $TESTTMP/hgcache/master/packs/*.dataidx
   437   $TESTTMP/hgcache/master/packs/a2731c9a16403457b67337a620931797fce8c821:
   417   $TESTTMP/hgcache/master/packs/a8378d888fe4325250720e51311a65d2509be742:
   438   x:
   418   x:
   439   Node          Delta Base    Delta Length  Blob Size
   419   Node          Delta Base    Delta Length  Blob Size
   440   1bb2e6237e03  000000000000  8             8
   420   1bb2e6237e03  000000000000  8             8
   441   d4a3ed9310e5  1bb2e6237e03  12            6
   421   d4a3ed9310e5  1bb2e6237e03  12            6
   442   aee31534993a  000000000000  4             4
   422   aee31534993a  000000000000  4             4
   443   1406e7411862  aee31534993a  12            2
   423   1406e7411862  aee31534993a  12            2
   444   
   424   
   445   Total:                      36            20        (80.0% bigger)
   425   Total:                      36            20        (80.0% bigger)
   446   y:
   426   y:
   447   Node          Delta Base    Delta Length  Blob Size
   427   Node          Delta Base    Delta Length  Blob Size
   448   577959738234  000000000000  8             8
   428   577959738234  000000000000  70            8
   449   
   429   
   450   Total:                      8             8         (0.0% bigger)
   430   Total:                      70            8         (775.0% bigger)
   451 
   431 
   452 Test huge pack cleanup using different values of packs.maxpacksize:
   432 Test huge pack cleanup using different values of packs.maxpacksize:
   453   $ hg repack --incremental --debug
   433   $ hg repack --incremental --debug
   454   $ hg repack --incremental --debug --config packs.maxpacksize=512
   434   $ hg repack --incremental --debug --config packs.maxpacksize=512
   455   removing oversize packfile $TESTTMP/hgcache/master/packs/a2731c9a16403457b67337a620931797fce8c821.datapack (365 bytes)
   435   removing oversize packfile $TESTTMP/hgcache/master/packs/a8378d888fe4325250720e51311a65d2509be742.datapack (426 bytes)
   456   removing oversize packfile $TESTTMP/hgcache/master/packs/a2731c9a16403457b67337a620931797fce8c821.dataidx (1.21 KB)
   436   removing oversize packfile $TESTTMP/hgcache/master/packs/a8378d888fe4325250720e51311a65d2509be742.dataidx (1.21 KB)
   457 
   437 
   458 Do a repack where the new pack reuses a delta from the old pack
   438 Do a repack where the new pack reuses a delta from the old pack
   459   $ clearcache
   439   $ clearcache
   460   $ hg prefetch -r '2::3'
   440   $ hg prefetch -r '2::3'
   461   2 files fetched over 1 fetches - (0 misses, 100.00% hit ratio) over * (glob)
   441   2 files fetched over 1 fetches - (2 misses, 0.00% hit ratio) over * (glob)
   462   $ hg repack
   442   $ hg repack
   463   $ hg debugdatapack $CACHEDIR/master/packs/*.datapack
   443   $ hg debugdatapack $CACHEDIR/master/packs/*.datapack
   464   $TESTTMP/hgcache/master/packs/abf210f6c3aa4dd0ecc7033633ad73591be16c95:
   444   $TESTTMP/hgcache/master/packs/abf210f6c3aa4dd0ecc7033633ad73591be16c95:
   465   x:
   445   x:
   466   Node          Delta Base    Delta Length  Blob Size
   446   Node          Delta Base    Delta Length  Blob Size
   467   1bb2e6237e03  000000000000  8             8
   447   1bb2e6237e03  000000000000  8             8
   468   d4a3ed9310e5  1bb2e6237e03  12            6
   448   d4a3ed9310e5  1bb2e6237e03  12            6
   469   
   449   
   470   Total:                      20            14        (42.9% bigger)
   450   Total:                      20            14        (42.9% bigger)
   471   $ hg prefetch -r '0::1'
   451   $ hg prefetch -r '0::1'
   472   2 files fetched over 1 fetches - (0 misses, 100.00% hit ratio) over * (glob)
   452   2 files fetched over 1 fetches - (2 misses, 0.00% hit ratio) over * (glob)
   473   $ hg repack
   453   $ hg repack
   474   $ hg debugdatapack $CACHEDIR/master/packs/*.datapack
   454   $ hg debugdatapack $CACHEDIR/master/packs/*.datapack
   475   $TESTTMP/hgcache/master/packs/09b8bf49256b3fc2175977ba97d6402e91a9a604:
   455   $TESTTMP/hgcache/master/packs/09b8bf49256b3fc2175977ba97d6402e91a9a604:
   476   x:
   456   x:
   477   Node          Delta Base    Delta Length  Blob Size
   457   Node          Delta Base    Delta Length  Blob Size