2016-05-05 00:52:37 +03:00
|
|
|
$ . "$TESTDIR/library.sh"
|
|
|
|
|
|
|
|
$ hginit master
|
|
|
|
$ cd master
|
|
|
|
$ cat >> .hg/hgrc <<EOF
|
|
|
|
> [remotefilelog]
|
|
|
|
> server=True
|
|
|
|
> serverexpiration=-1
|
|
|
|
> EOF
|
|
|
|
$ echo x > x
|
|
|
|
$ hg commit -qAm x
|
|
|
|
$ echo x >> x
|
|
|
|
$ hg commit -qAm x2
|
|
|
|
$ cd ..
|
|
|
|
|
|
|
|
$ hgcloneshallow ssh://user@dummy/master shallow -q
|
|
|
|
1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over *s (glob)
|
|
|
|
|
|
|
|
# Test that repack cleans up the old files and creates new packs
|
|
|
|
|
|
|
|
$ cd shallow
|
2016-05-18 17:22:10 +03:00
|
|
|
$ find $CACHEDIR -type f | sort
|
2016-05-05 00:52:37 +03:00
|
|
|
$TESTTMP/hgcache/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/aee31534993a501858fb6dd96a065671922e7d51
|
2016-05-18 17:22:10 +03:00
|
|
|
$TESTTMP/hgcache/repos
|
2016-05-05 00:52:43 +03:00
|
|
|
|
2016-05-05 00:52:37 +03:00
|
|
|
$ hg repack
|
2016-05-05 00:52:43 +03:00
|
|
|
|
2016-05-18 17:22:10 +03:00
|
|
|
$ find $CACHEDIR -type f | sort
|
2016-05-05 00:52:37 +03:00
|
|
|
$TESTTMP/hgcache/master/packs/817d294043bd21a3de01f807721971abe45219ce.dataidx
|
|
|
|
$TESTTMP/hgcache/master/packs/817d294043bd21a3de01f807721971abe45219ce.datapack
|
2016-05-18 17:22:10 +03:00
|
|
|
$TESTTMP/hgcache/master/packs/bc0153a5326a2f0bcae9f659ad3376c04350119f.histidx
|
|
|
|
$TESTTMP/hgcache/master/packs/bc0153a5326a2f0bcae9f659ad3376c04350119f.histpack
|
|
|
|
$TESTTMP/hgcache/repos
|
2016-05-05 00:52:37 +03:00
|
|
|
|
2016-05-05 00:53:07 +03:00
|
|
|
# Test that the packs are readonly
|
|
|
|
$ ls -l $CACHEDIR/master/packs
|
|
|
|
* (glob)
|
|
|
|
-r--r--r--* 817d294043bd21a3de01f807721971abe45219ce.dataidx (glob)
|
|
|
|
-r--r--r--* 817d294043bd21a3de01f807721971abe45219ce.datapack (glob)
|
2016-05-16 20:59:09 +03:00
|
|
|
-r--r--r--* bc0153a5326a2f0bcae9f659ad3376c04350119f.histidx (glob)
|
|
|
|
-r--r--r--* bc0153a5326a2f0bcae9f659ad3376c04350119f.histpack (glob)
|
2016-05-05 00:53:07 +03:00
|
|
|
|
2016-05-05 00:52:37 +03:00
|
|
|
# Test that the data in the new packs is accessible
|
|
|
|
$ hg cat -r . x
|
|
|
|
x
|
|
|
|
x
|
2016-05-05 00:52:52 +03:00
|
|
|
|
|
|
|
# Test that adding new data and repacking it results in the loose data and the
|
|
|
|
# old packs being combined.
|
|
|
|
|
|
|
|
$ cd ../master
|
|
|
|
$ echo x >> x
|
|
|
|
$ hg commit -m x3
|
|
|
|
$ cd ../shallow
|
|
|
|
$ hg pull -q
|
|
|
|
$ hg up -q tip
|
2016-05-05 00:53:16 +03:00
|
|
|
1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over * (glob)
|
2016-05-05 00:52:52 +03:00
|
|
|
|
2016-05-18 17:22:10 +03:00
|
|
|
$ find $CACHEDIR -type f | sort
|
|
|
|
$TESTTMP/hgcache/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/d4a3ed9310e5bd9887e3bf779da5077efab28216
|
2016-05-05 00:52:52 +03:00
|
|
|
$TESTTMP/hgcache/master/packs/817d294043bd21a3de01f807721971abe45219ce.dataidx
|
|
|
|
$TESTTMP/hgcache/master/packs/817d294043bd21a3de01f807721971abe45219ce.datapack
|
2016-05-18 17:22:10 +03:00
|
|
|
$TESTTMP/hgcache/master/packs/bc0153a5326a2f0bcae9f659ad3376c04350119f.histidx
|
|
|
|
$TESTTMP/hgcache/master/packs/bc0153a5326a2f0bcae9f659ad3376c04350119f.histpack
|
|
|
|
$TESTTMP/hgcache/repos
|
2016-05-05 00:52:52 +03:00
|
|
|
|
|
|
|
$ hg repack --traceback
|
|
|
|
|
2016-05-18 17:22:10 +03:00
|
|
|
$ find $CACHEDIR -type f | sort
|
2016-05-05 00:52:52 +03:00
|
|
|
$TESTTMP/hgcache/master/packs/1e386660a2bca1c6949a1cbf5b095765e98fd241.dataidx
|
|
|
|
$TESTTMP/hgcache/master/packs/1e386660a2bca1c6949a1cbf5b095765e98fd241.datapack
|
2016-05-18 17:22:10 +03:00
|
|
|
$TESTTMP/hgcache/master/packs/3ed57673383638cd7c2c873a5a00a1f40f26b0b8.histidx
|
|
|
|
$TESTTMP/hgcache/master/packs/3ed57673383638cd7c2c873a5a00a1f40f26b0b8.histpack
|
|
|
|
$TESTTMP/hgcache/repos
|
2016-05-05 00:52:52 +03:00
|
|
|
|
|
|
|
# Verify all the file data is still available
|
|
|
|
$ hg cat -r . x
|
|
|
|
x
|
|
|
|
x
|
|
|
|
x
|
|
|
|
$ hg cat -r '.^' x
|
|
|
|
x
|
|
|
|
x
|
2016-05-05 00:53:10 +03:00
|
|
|
|
|
|
|
# Test that repacking again without new data does not delete the pack files
|
|
|
|
# and did not change the pack names
|
|
|
|
$ hg repack
|
2016-05-18 17:22:10 +03:00
|
|
|
$ find $CACHEDIR -type f | sort
|
2016-05-05 00:53:10 +03:00
|
|
|
$TESTTMP/hgcache/master/packs/1e386660a2bca1c6949a1cbf5b095765e98fd241.dataidx
|
|
|
|
$TESTTMP/hgcache/master/packs/1e386660a2bca1c6949a1cbf5b095765e98fd241.datapack
|
2016-05-18 17:22:10 +03:00
|
|
|
$TESTTMP/hgcache/master/packs/3ed57673383638cd7c2c873a5a00a1f40f26b0b8.histidx
|
|
|
|
$TESTTMP/hgcache/master/packs/3ed57673383638cd7c2c873a5a00a1f40f26b0b8.histpack
|
|
|
|
$TESTTMP/hgcache/repos
|
2016-05-05 00:53:19 +03:00
|
|
|
|
|
|
|
# Run two repacks at once
|
|
|
|
$ hg repack --config "hooks.prerepack=sleep 2" &
|
|
|
|
$ hg repack
|
|
|
|
abort: skipping repack - another repack is already running
|
|
|
|
[255]
|
2016-05-05 00:53:23 +03:00
|
|
|
$ sleep 3
|
|
|
|
|
|
|
|
# Run repack in the background
|
|
|
|
$ cd ../master
|
|
|
|
$ echo x >> x
|
|
|
|
$ hg commit -m x4
|
|
|
|
$ cd ../shallow
|
|
|
|
$ hg pull -q
|
|
|
|
$ hg up -q tip
|
|
|
|
1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over * (glob)
|
2016-05-18 17:22:10 +03:00
|
|
|
$ find $CACHEDIR -type f | sort
|
|
|
|
$TESTTMP/hgcache/master/11/f6ad8ec52a2984abaafd7c3b516503785c2072/1bb2e6237e035c8f8ef508e281f1ce075bc6db72
|
2016-05-05 00:53:23 +03:00
|
|
|
$TESTTMP/hgcache/master/packs/1e386660a2bca1c6949a1cbf5b095765e98fd241.dataidx
|
|
|
|
$TESTTMP/hgcache/master/packs/1e386660a2bca1c6949a1cbf5b095765e98fd241.datapack
|
2016-05-18 17:22:10 +03:00
|
|
|
$TESTTMP/hgcache/master/packs/3ed57673383638cd7c2c873a5a00a1f40f26b0b8.histidx
|
|
|
|
$TESTTMP/hgcache/master/packs/3ed57673383638cd7c2c873a5a00a1f40f26b0b8.histpack
|
|
|
|
$TESTTMP/hgcache/repos
|
2016-05-05 00:53:23 +03:00
|
|
|
$ hg repack --background
|
|
|
|
$ sleep 2
|
2016-05-18 17:22:10 +03:00
|
|
|
$ find $CACHEDIR -type f | sort
|
2016-05-16 20:59:09 +03:00
|
|
|
$TESTTMP/hgcache/master/packs/3bebfba849e7aed8e598b92b296aeaff4784393b.histidx
|
|
|
|
$TESTTMP/hgcache/master/packs/3bebfba849e7aed8e598b92b296aeaff4784393b.histpack
|
2016-05-05 00:53:23 +03:00
|
|
|
$TESTTMP/hgcache/master/packs/92a06d8b76a23b6e6150cf877ea75ed993e0b2d8.dataidx
|
|
|
|
$TESTTMP/hgcache/master/packs/92a06d8b76a23b6e6150cf877ea75ed993e0b2d8.datapack
|
2016-05-18 17:22:10 +03:00
|
|
|
$TESTTMP/hgcache/repos
|
2016-05-16 20:59:09 +03:00
|
|
|
|
2016-05-16 20:59:09 +03:00
|
|
|
# Test debug commands
|
|
|
|
|
|
|
|
$ hg debugdatapack $TESTTMP/hgcache/master/packs/92a06d8b76a23b6e6150cf877ea75ed993e0b2d8
|
|
|
|
|
|
|
|
x
|
|
|
|
Node Delta Base Delta Length
|
|
|
|
1bb2e6237e03 000000000000 13
|
|
|
|
d4a3ed9310e5 1bb2e6237e03 17
|
|
|
|
aee31534993a d4a3ed9310e5 17
|
|
|
|
$ hg debughistorypack $TESTTMP/hgcache/master/packs/3bebfba849e7aed8e598b92b296aeaff4784393b
|
|
|
|
|
|
|
|
x
|
|
|
|
Node P1 Node P2 Node Link Node Copy From
|
|
|
|
1bb2e6237e03 d4a3ed9310e5 000000000000 0b03bbc9e1e7
|
|
|
|
d4a3ed9310e5 aee31534993a 000000000000 421535db10b6
|
|
|
|
aee31534993a 1406e7411862 000000000000 a89d614e2364
|
|
|
|
1406e7411862 000000000000 000000000000 b292c1e3311f
|
|
|
|
|
2016-05-16 20:59:09 +03:00
|
|
|
# Test copy tracing from a pack
|
|
|
|
$ cd ../master
|
|
|
|
$ hg mv x y
|
|
|
|
$ hg commit -m 'move x to y'
|
|
|
|
$ cd ../shallow
|
|
|
|
$ hg pull -q
|
|
|
|
$ hg up -q tip
|
|
|
|
1 files fetched over 1 fetches - (1 misses, 0.00% hit ratio) over * (glob)
|
|
|
|
$ hg repack
|
|
|
|
$ hg log -f y -T '{desc}\n'
|
|
|
|
move x to y
|
|
|
|
x4
|
|
|
|
x3
|
|
|
|
x2
|
|
|
|
x
|
2016-05-16 20:59:09 +03:00
|
|
|
|
|
|
|
# Test repacking datapack without history
|
|
|
|
$ rm -rf $CACHEDIR/master/packs/*hist*
|
|
|
|
$ hg repack
|
|
|
|
$ hg debugdatapack $TESTTMP/hgcache/master/packs/60ed975b3589fc9708a374155083fbdc7da397cb
|
|
|
|
|
|
|
|
x
|
|
|
|
Node Delta Base Delta Length
|
|
|
|
1bb2e6237e03 000000000000 13
|
|
|
|
aee31534993a 000000000000 9
|
|
|
|
d4a3ed9310e5 000000000000 11
|
|
|
|
|
|
|
|
y
|
|
|
|
Node Delta Base Delta Length
|
|
|
|
577959738234 000000000000 74
|
|
|
|
|
|
|
|
$ hg cat -r ".^" x
|
|
|
|
x
|
|
|
|
x
|
|
|
|
x
|
|
|
|
x
|