Details
Details
- Reviewers
- None
- Group Reviewers
Restricted Project
Diff Detail
Diff Detail
- Repository
- rFBHGX Facebook Mercurial Extensions
- Lint
Lint Skipped - Unit
Unit Tests Skipped
Restricted Project |
Lint Skipped |
Unit Tests Skipped |
Path | Packages | |||
---|---|---|---|---|
M | remotefilelog/debugcommands.py (19 lines) | |||
M | tests/test-remotefilelog-bgprefetch.t (40 lines) | |||
M | tests/test-remotefilelog-gcrepack.t (14 lines) | |||
M | tests/test-remotefilelog-repack-fast.t (8 lines) | |||
M | tests/test-remotefilelog-repack.t (12 lines) | |||
M | tests/test-treemanifest-repack.t (12 lines) |
else: | else: | ||||
hashformatter = short | hashformatter = short | ||||
hashlen = 14 | hashlen = 14 | ||||
lastfilename = None | lastfilename = None | ||||
totaldeltasize = defaultdict(lambda: 0) | totaldeltasize = defaultdict(lambda: 0) | ||||
totalblobsize = defaultdict(lambda: 0) | totalblobsize = defaultdict(lambda: 0) | ||||
def printtotals(filename): | def printtotals(filename): | ||||
if filename in totaldeltasize or filename in totaldeltasize: | if not (filename in totaldeltasize or filename in totaldeltasize): | ||||
ui.write("Total:%s%s %s\n" % ( | return | ||||
difference = totalblobsize[filename] - totaldeltasize[filename] | |||||
deltastr = "%0.1f%% %s" % ( | |||||
(100.0 * abs(difference) / totalblobsize[filename]), | |||||
("smaller" if difference > 0 else "bigger")) | |||||
ui.write("Total:%s%s %s (%s)\n" % ( | |||||
"".ljust(2 * hashlen - len("Total:")), | "".ljust(2 * hashlen - len("Total:")), | ||||
str(totaldeltasize[filename]).ljust(12), | str(totaldeltasize[filename]).ljust(12), | ||||
str(totalblobsize[filename]).ljust(9) | str(totalblobsize[filename]).ljust(9), | ||||
deltastr | |||||
)) | )) | ||||
for filename, node, deltabase, deltalen in dpack.iterentries(): | for filename, node, deltabase, deltalen in dpack.iterentries(): | ||||
if filename != lastfilename: | if filename != lastfilename: | ||||
printtotals(lastfilename) | printtotals(lastfilename) | ||||
ui.write("\n%s:\n" % ('(Root)' if filename == '' else filename)) | ui.write("\n%s:\n" % ('(Root)' if filename == '' else filename)) | ||||
ui.write("%s%s%s%s\n" % ( | ui.write("%s%s%s%s\n" % ( | ||||
"Node".ljust(hashlen), | "Node".ljust(hashlen), | ||||
"Delta Base".ljust(hashlen), | "Delta Base".ljust(hashlen), | ||||
"Delta Length".ljust(14), | "Delta Length".ljust(14), |
# Ensure that file 'w' was prefetched - it was not part of the update operation and therefore | # Ensure that file 'w' was prefetched - it was not part of the update operation and therefore | ||||
# could only be downloaded by the background prefetch | # could only be downloaded by the background prefetch | ||||
$ hg debugdatapack $TESTTMP/hgcache/master/packs/8299d5a1030f073f4adbb3b6bd2ad3bdcc276df0.datapack | $ hg debugdatapack $TESTTMP/hgcache/master/packs/8299d5a1030f073f4adbb3b6bd2ad3bdcc276df0.datapack | ||||
w: | w: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
bb6ccd5dceaa 000000000000 2 2 | bb6ccd5dceaa 000000000000 2 2 | ||||
Total: 2 2 | Total: 2 2 (0.0% bigger) | ||||
x: | x: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
ef95c5376f34 000000000000 3 3 | ef95c5376f34 000000000000 3 3 | ||||
1406e7411862 ef95c5376f34 14 2 | 1406e7411862 ef95c5376f34 14 2 | ||||
Total: 17 5 | Total: 17 5 (240.0% bigger) | ||||
y: | y: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
076f5e2225b3 000000000000 2 2 | 076f5e2225b3 000000000000 2 2 | ||||
Total: 2 2 | Total: 2 2 (0.0% bigger) | ||||
z: | z: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
69a1b6752270 000000000000 2 2 | 69a1b6752270 000000000000 2 2 | ||||
Total: 2 2 | Total: 2 2 (0.0% bigger) | ||||
# background prefetch with repack on commit when wcprevset configured | # background prefetch with repack on commit when wcprevset configured | ||||
$ cat >> .hg/hgrc <<EOF | $ cat >> .hg/hgrc <<EOF | ||||
> [remotefilelog] | > [remotefilelog] | ||||
> bgprefetchrevs=0:: | > bgprefetchrevs=0:: | ||||
> EOF | > EOF | ||||
# Ensure that file 'w' was prefetched - it was not part of the commit operation and therefore | # Ensure that file 'w' was prefetched - it was not part of the commit operation and therefore | ||||
# could only be downloaded by the background prefetch | # could only be downloaded by the background prefetch | ||||
$ hg debugdatapack $TESTTMP/hgcache/master/packs/8299d5a1030f073f4adbb3b6bd2ad3bdcc276df0.datapack | $ hg debugdatapack $TESTTMP/hgcache/master/packs/8299d5a1030f073f4adbb3b6bd2ad3bdcc276df0.datapack | ||||
w: | w: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
bb6ccd5dceaa 000000000000 2 2 | bb6ccd5dceaa 000000000000 2 2 | ||||
Total: 2 2 | Total: 2 2 (0.0% bigger) | ||||
x: | x: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
ef95c5376f34 000000000000 3 3 | ef95c5376f34 000000000000 3 3 | ||||
1406e7411862 ef95c5376f34 14 2 | 1406e7411862 ef95c5376f34 14 2 | ||||
Total: 17 5 | Total: 17 5 (240.0% bigger) | ||||
y: | y: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
076f5e2225b3 000000000000 2 2 | 076f5e2225b3 000000000000 2 2 | ||||
Total: 2 2 | Total: 2 2 (0.0% bigger) | ||||
z: | z: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
69a1b6752270 000000000000 2 2 | 69a1b6752270 000000000000 2 2 | ||||
Total: 2 2 | Total: 2 2 (0.0% bigger) | ||||
# background prefetch with repack on rebase when wcprevset configured | # background prefetch with repack on rebase when wcprevset configured | ||||
$ hg up -r 2 | $ hg up -r 2 | ||||
3 files updated, 0 files merged, 3 files removed, 0 files unresolved | 3 files updated, 0 files merged, 3 files removed, 0 files unresolved | ||||
(leaving bookmark temporary) | (leaving bookmark temporary) | ||||
$ clearcache | $ clearcache | ||||
$ find $CACHEDIR -type f | sort | $ find $CACHEDIR -type f | sort | ||||
# Ensure that file 'y' was prefetched - it was not part of the rebase operation and therefore | # Ensure that file 'y' was prefetched - it was not part of the rebase operation and therefore | ||||
# could only be downloaded by the background prefetch | # could only be downloaded by the background prefetch | ||||
$ hg debugdatapack $TESTTMP/hgcache/master/packs/8299d5a1030f073f4adbb3b6bd2ad3bdcc276df0.datapack | $ hg debugdatapack $TESTTMP/hgcache/master/packs/8299d5a1030f073f4adbb3b6bd2ad3bdcc276df0.datapack | ||||
w: | w: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
bb6ccd5dceaa 000000000000 2 2 | bb6ccd5dceaa 000000000000 2 2 | ||||
Total: 2 2 | Total: 2 2 (0.0% bigger) | ||||
x: | x: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
ef95c5376f34 000000000000 3 3 | ef95c5376f34 000000000000 3 3 | ||||
1406e7411862 ef95c5376f34 14 2 | 1406e7411862 ef95c5376f34 14 2 | ||||
Total: 17 5 | Total: 17 5 (240.0% bigger) | ||||
y: | y: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
076f5e2225b3 000000000000 2 2 | 076f5e2225b3 000000000000 2 2 | ||||
Total: 2 2 | Total: 2 2 (0.0% bigger) | ||||
z: | z: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
69a1b6752270 000000000000 2 2 | 69a1b6752270 000000000000 2 2 | ||||
Total: 2 2 | Total: 2 2 (0.0% bigger) | ||||
# Check that foregound prefetch with no arguments blocks until background prefetches finish | # Check that foregound prefetch with no arguments blocks until background prefetches finish | ||||
$ hg up -r 3 | $ hg up -r 3 | ||||
2 files updated, 0 files merged, 0 files removed, 0 files unresolved | 2 files updated, 0 files merged, 0 files removed, 0 files unresolved | ||||
$ clearcache | $ clearcache | ||||
$ hg prefetch --repack | $ hg prefetch --repack | ||||
waiting for lock on prefetching in $TESTTMP/shallow held by process * on host * (glob) (?) | waiting for lock on prefetching in $TESTTMP/shallow held by process * on host * (glob) (?) | ||||
$TESTTMP/hgcache/repos | $TESTTMP/hgcache/repos | ||||
# Ensure that files were prefetched | # Ensure that files were prefetched | ||||
$ hg debugdatapack $TESTTMP/hgcache/master/packs/8299d5a1030f073f4adbb3b6bd2ad3bdcc276df0.datapack | $ hg debugdatapack $TESTTMP/hgcache/master/packs/8299d5a1030f073f4adbb3b6bd2ad3bdcc276df0.datapack | ||||
w: | w: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
bb6ccd5dceaa 000000000000 2 2 | bb6ccd5dceaa 000000000000 2 2 | ||||
Total: 2 2 | Total: 2 2 (0.0% bigger) | ||||
x: | x: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
ef95c5376f34 000000000000 3 3 | ef95c5376f34 000000000000 3 3 | ||||
1406e7411862 ef95c5376f34 14 2 | 1406e7411862 ef95c5376f34 14 2 | ||||
Total: 17 5 | Total: 17 5 (240.0% bigger) | ||||
y: | y: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
076f5e2225b3 000000000000 2 2 | 076f5e2225b3 000000000000 2 2 | ||||
Total: 2 2 | Total: 2 2 (0.0% bigger) | ||||
z: | z: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
69a1b6752270 000000000000 2 2 | 69a1b6752270 000000000000 2 2 | ||||
Total: 2 2 | Total: 2 2 (0.0% bigger) | ||||
# Check that foreground prefetch fetches revs specified by '. + draft() + bgprefetchrevs + pullprefetch' | # Check that foreground prefetch fetches revs specified by '. + draft() + bgprefetchrevs + pullprefetch' | ||||
$ clearcache | $ clearcache | ||||
$ hg prefetch --repack | $ hg prefetch --repack | ||||
waiting for lock on prefetching in $TESTTMP/shallow held by process * on host * (glob) (?) | waiting for lock on prefetching in $TESTTMP/shallow held by process * on host * (glob) (?) | ||||
got lock after * seconds (glob) (?) | got lock after * seconds (glob) (?) | ||||
(running background incremental repack) | (running background incremental repack) | ||||
$TESTTMP/hgcache/repos | $TESTTMP/hgcache/repos | ||||
# Ensure that files were prefetched | # Ensure that files were prefetched | ||||
$ hg debugdatapack $TESTTMP/hgcache/master/packs/8299d5a1030f073f4adbb3b6bd2ad3bdcc276df0.datapack | $ hg debugdatapack $TESTTMP/hgcache/master/packs/8299d5a1030f073f4adbb3b6bd2ad3bdcc276df0.datapack | ||||
w: | w: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
bb6ccd5dceaa 000000000000 2 2 | bb6ccd5dceaa 000000000000 2 2 | ||||
Total: 2 2 | Total: 2 2 (0.0% bigger) | ||||
x: | x: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
ef95c5376f34 000000000000 3 3 | ef95c5376f34 000000000000 3 3 | ||||
1406e7411862 ef95c5376f34 14 2 | 1406e7411862 ef95c5376f34 14 2 | ||||
Total: 17 5 | Total: 17 5 (240.0% bigger) | ||||
y: | y: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
076f5e2225b3 000000000000 2 2 | 076f5e2225b3 000000000000 2 2 | ||||
Total: 2 2 | Total: 2 2 (0.0% bigger) | ||||
z: | z: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
69a1b6752270 000000000000 2 2 | 69a1b6752270 000000000000 2 2 | ||||
Total: 2 2 | Total: 2 2 (0.0% bigger) | ||||
# Test that if data was prefetched and repacked we dont need to prefetch it again | # Test that if data was prefetched and repacked we dont need to prefetch it again | ||||
# It ensures that Mercurial looks not only in loose files but in packs as well | # It ensures that Mercurial looks not only in loose files but in packs as well | ||||
$ hg prefetch --repack | $ hg prefetch --repack | ||||
(running background incremental repack) | (running background incremental repack) |
# Ensure that all file versions were prefetched | # Ensure that all file versions were prefetched | ||||
$ hg debugdatapack $TESTTMP/hgcache/master/packs/f7a942a6e4673d2c7b697fdd926ca2d153831ca4.datapack | $ hg debugdatapack $TESTTMP/hgcache/master/packs/f7a942a6e4673d2c7b697fdd926ca2d153831ca4.datapack | ||||
x: | x: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
1406e7411862 000000000000 2 2 | 1406e7411862 000000000000 2 2 | ||||
Total: 2 2 | Total: 2 2 (0.0% bigger) | ||||
y: | y: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
50dbc4572b8e 000000000000 3 3 | 50dbc4572b8e 000000000000 3 3 | ||||
076f5e2225b3 50dbc4572b8e 14 2 | 076f5e2225b3 50dbc4572b8e 14 2 | ||||
Total: 17 5 | Total: 17 5 (240.0% bigger) | ||||
# Test garbage collection during repack | # Test garbage collection during repack | ||||
$ cat >> .hg/hgrc <<EOF | $ cat >> .hg/hgrc <<EOF | ||||
> [remotefilelog] | > [remotefilelog] | ||||
> bgprefetchrevs=tip | > bgprefetchrevs=tip | ||||
> gcrepack=True | > gcrepack=True | ||||
> nodettl=86400 | > nodettl=86400 | ||||
# Ensure that file 'x' was garbage collected. It should be GCed because it is not in the keepset | # Ensure that file 'x' was garbage collected. It should be GCed because it is not in the keepset | ||||
# and is old (commit date is 0.0 in tests). Ensure that file 'y' is present as it is in the keepset. | # and is old (commit date is 0.0 in tests). Ensure that file 'y' is present as it is in the keepset. | ||||
$ hg debugdatapack $TESTTMP/hgcache/master/packs/05baa499c6b07f2bf0ea3d2c8151da1cb86f5e33.datapack | $ hg debugdatapack $TESTTMP/hgcache/master/packs/05baa499c6b07f2bf0ea3d2c8151da1cb86f5e33.datapack | ||||
y: | y: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
50dbc4572b8e 000000000000 3 3 | 50dbc4572b8e 000000000000 3 3 | ||||
Total: 3 3 | Total: 3 3 (0.0% bigger) | ||||
# Prefetch all data again and repack for later garbage collection | # Prefetch all data again and repack for later garbage collection | ||||
$ cat >> .hg/hgrc <<EOF | $ cat >> .hg/hgrc <<EOF | ||||
> [remotefilelog] | > [remotefilelog] | ||||
> bgprefetchrevs=all() | > bgprefetchrevs=all() | ||||
> EOF | > EOF | ||||
# Ensure that all file versions were prefetched | # Ensure that all file versions were prefetched | ||||
$ hg debugdatapack $TESTTMP/hgcache/master/packs/f7a942a6e4673d2c7b697fdd926ca2d153831ca4.datapack | $ hg debugdatapack $TESTTMP/hgcache/master/packs/f7a942a6e4673d2c7b697fdd926ca2d153831ca4.datapack | ||||
x: | x: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
1406e7411862 000000000000 2 2 | 1406e7411862 000000000000 2 2 | ||||
Total: 2 2 | Total: 2 2 (0.0% bigger) | ||||
y: | y: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
50dbc4572b8e 000000000000 3 3 | 50dbc4572b8e 000000000000 3 3 | ||||
076f5e2225b3 50dbc4572b8e 14 2 | 076f5e2225b3 50dbc4572b8e 14 2 | ||||
Total: 17 5 | Total: 17 5 (240.0% bigger) | ||||
# Test garbage collection during repack. Ensure that new files are not removed even though they are not in the keepset | # Test garbage collection during repack. Ensure that new files are not removed even though they are not in the keepset | ||||
# For the purposes of the test the TTL of a file is set to current time + 100 seconds. i.e. all commits in tests have | # For the purposes of the test the TTL of a file is set to current time + 100 seconds. i.e. all commits in tests have | ||||
# a date of 1970 and therefore to prevent garbage collection we have to set nodettl to be farther from 1970 than we are now. | # a date of 1970 and therefore to prevent garbage collection we have to set nodettl to be farther from 1970 than we are now. | ||||
$ cat >> .hg/hgrc <<EOF | $ cat >> .hg/hgrc <<EOF | ||||
> [remotefilelog] | > [remotefilelog] | ||||
> bgprefetchrevs= | > bgprefetchrevs= | ||||
# Ensure that all file versions were prefetched | # Ensure that all file versions were prefetched | ||||
$ hg debugdatapack $TESTTMP/hgcache/master/packs/f7a942a6e4673d2c7b697fdd926ca2d153831ca4.datapack | $ hg debugdatapack $TESTTMP/hgcache/master/packs/f7a942a6e4673d2c7b697fdd926ca2d153831ca4.datapack | ||||
x: | x: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
1406e7411862 000000000000 2 2 | 1406e7411862 000000000000 2 2 | ||||
Total: 2 2 | Total: 2 2 (0.0% bigger) | ||||
y: | y: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
50dbc4572b8e 000000000000 3 3 | 50dbc4572b8e 000000000000 3 3 | ||||
076f5e2225b3 50dbc4572b8e 14 2 | 076f5e2225b3 50dbc4572b8e 14 2 | ||||
Total: 17 5 | Total: 17 5 (240.0% bigger) |
$ hg debugdatapack $TESTTMP/hgcache/master/packs/*.datapack | $ hg debugdatapack $TESTTMP/hgcache/master/packs/*.datapack | ||||
x: | x: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
1bb2e6237e03 000000000000 8 8 | 1bb2e6237e03 000000000000 8 8 | ||||
d4a3ed9310e5 1bb2e6237e03 12 6 | d4a3ed9310e5 1bb2e6237e03 12 6 | ||||
aee31534993a d4a3ed9310e5 12 4 | aee31534993a d4a3ed9310e5 12 4 | ||||
Total: 32 18 | Total: 32 18 (77.8% bigger) | ||||
$ hg debugdatapack --long $TESTTMP/hgcache/master/packs/*.datapack | $ hg debugdatapack --long $TESTTMP/hgcache/master/packs/*.datapack | ||||
x: | x: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
1bb2e6237e035c8f8ef508e281f1ce075bc6db72 0000000000000000000000000000000000000000 8 8 | 1bb2e6237e035c8f8ef508e281f1ce075bc6db72 0000000000000000000000000000000000000000 8 8 | ||||
d4a3ed9310e5bd9887e3bf779da5077efab28216 1bb2e6237e035c8f8ef508e281f1ce075bc6db72 12 6 | d4a3ed9310e5bd9887e3bf779da5077efab28216 1bb2e6237e035c8f8ef508e281f1ce075bc6db72 12 6 | ||||
aee31534993a501858fb6dd96a065671922e7d51 d4a3ed9310e5bd9887e3bf779da5077efab28216 12 4 | aee31534993a501858fb6dd96a065671922e7d51 d4a3ed9310e5bd9887e3bf779da5077efab28216 12 4 | ||||
Total: 32 18 | Total: 32 18 (77.8% bigger) | ||||
$ hg debugdatapack $TESTTMP/hgcache/master/packs/*.datapack --node d4a3ed9310e5bd9887e3bf779da5077efab28216 | $ hg debugdatapack $TESTTMP/hgcache/master/packs/*.datapack --node d4a3ed9310e5bd9887e3bf779da5077efab28216 | ||||
x | x | ||||
Node Delta Base Delta SHA1 Delta Length | Node Delta Base Delta SHA1 Delta Length | ||||
d4a3ed9310e5bd9887e3bf779da5077efab28216 1bb2e6237e035c8f8ef508e281f1ce075bc6db72 77029ab56e83ea2115dd53ff87483682abe5d7ca 12 | d4a3ed9310e5bd9887e3bf779da5077efab28216 1bb2e6237e035c8f8ef508e281f1ce075bc6db72 77029ab56e83ea2115dd53ff87483682abe5d7ca 12 | ||||
Node Delta Base Delta SHA1 Delta Length | Node Delta Base Delta SHA1 Delta Length | ||||
1bb2e6237e035c8f8ef508e281f1ce075bc6db72 0000000000000000000000000000000000000000 7ca8c71a64f7b56380e77573da2f7a5fdd2ecdb5 8 | 1bb2e6237e035c8f8ef508e281f1ce075bc6db72 0000000000000000000000000000000000000000 7ca8c71a64f7b56380e77573da2f7a5fdd2ecdb5 8 | ||||
$ hg debughistorypack $TESTTMP/hgcache/master/packs/*.histidx | $ hg debughistorypack $TESTTMP/hgcache/master/packs/*.histidx | ||||
$ hg repack | $ hg repack | ||||
$ hg debugdatapack $TESTTMP/hgcache/master/packs/*.datapack | $ hg debugdatapack $TESTTMP/hgcache/master/packs/*.datapack | ||||
x: | x: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
1bb2e6237e03 000000000000 8 8 | 1bb2e6237e03 000000000000 8 8 | ||||
aee31534993a 000000000000 4 4 | aee31534993a 000000000000 4 4 | ||||
d4a3ed9310e5 000000000000 6 6 | d4a3ed9310e5 000000000000 6 6 | ||||
Total: 18 18 | Total: 18 18 (0.0% bigger) | ||||
y: | y: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
577959738234 000000000000 70 8 | 577959738234 000000000000 70 8 | ||||
Total: 70 8 | Total: 70 8 (775.0% bigger) | ||||
$ hg cat -r ".^" x | $ hg cat -r ".^" x | ||||
x | x | ||||
x | x | ||||
x | x | ||||
x | x | ||||
Incremental repack | Incremental repack |
$ hg debugdatapack $TESTTMP/hgcache/master/packs/*.datapack | $ hg debugdatapack $TESTTMP/hgcache/master/packs/*.datapack | ||||
x: | x: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
1bb2e6237e03 000000000000 8 8 | 1bb2e6237e03 000000000000 8 8 | ||||
d4a3ed9310e5 1bb2e6237e03 12 6 | d4a3ed9310e5 1bb2e6237e03 12 6 | ||||
aee31534993a d4a3ed9310e5 12 4 | aee31534993a d4a3ed9310e5 12 4 | ||||
Total: 32 18 | Total: 32 18 (77.8% bigger) | ||||
$ hg debugdatapack --long $TESTTMP/hgcache/master/packs/*.datapack | $ hg debugdatapack --long $TESTTMP/hgcache/master/packs/*.datapack | ||||
x: | x: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
1bb2e6237e035c8f8ef508e281f1ce075bc6db72 0000000000000000000000000000000000000000 8 8 | 1bb2e6237e035c8f8ef508e281f1ce075bc6db72 0000000000000000000000000000000000000000 8 8 | ||||
d4a3ed9310e5bd9887e3bf779da5077efab28216 1bb2e6237e035c8f8ef508e281f1ce075bc6db72 12 6 | d4a3ed9310e5bd9887e3bf779da5077efab28216 1bb2e6237e035c8f8ef508e281f1ce075bc6db72 12 6 | ||||
aee31534993a501858fb6dd96a065671922e7d51 d4a3ed9310e5bd9887e3bf779da5077efab28216 12 4 | aee31534993a501858fb6dd96a065671922e7d51 d4a3ed9310e5bd9887e3bf779da5077efab28216 12 4 | ||||
Total: 32 18 | Total: 32 18 (77.8% bigger) | ||||
$ hg debugdatapack $TESTTMP/hgcache/master/packs/*.datapack --node d4a3ed9310e5bd9887e3bf779da5077efab28216 | $ hg debugdatapack $TESTTMP/hgcache/master/packs/*.datapack --node d4a3ed9310e5bd9887e3bf779da5077efab28216 | ||||
x | x | ||||
Node Delta Base Delta SHA1 Delta Length | Node Delta Base Delta SHA1 Delta Length | ||||
d4a3ed9310e5bd9887e3bf779da5077efab28216 1bb2e6237e035c8f8ef508e281f1ce075bc6db72 77029ab56e83ea2115dd53ff87483682abe5d7ca 12 | d4a3ed9310e5bd9887e3bf779da5077efab28216 1bb2e6237e035c8f8ef508e281f1ce075bc6db72 77029ab56e83ea2115dd53ff87483682abe5d7ca 12 | ||||
Node Delta Base Delta SHA1 Delta Length | Node Delta Base Delta SHA1 Delta Length | ||||
1bb2e6237e035c8f8ef508e281f1ce075bc6db72 0000000000000000000000000000000000000000 7ca8c71a64f7b56380e77573da2f7a5fdd2ecdb5 8 | 1bb2e6237e035c8f8ef508e281f1ce075bc6db72 0000000000000000000000000000000000000000 7ca8c71a64f7b56380e77573da2f7a5fdd2ecdb5 8 | ||||
$ hg debughistorypack $TESTTMP/hgcache/master/packs/*.histidx | $ hg debughistorypack $TESTTMP/hgcache/master/packs/*.histidx | ||||
$ hg repack | $ hg repack | ||||
$ hg debugdatapack $TESTTMP/hgcache/master/packs/*.datapack | $ hg debugdatapack $TESTTMP/hgcache/master/packs/*.datapack | ||||
x: | x: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
1bb2e6237e03 000000000000 8 8 | 1bb2e6237e03 000000000000 8 8 | ||||
aee31534993a 000000000000 4 4 | aee31534993a 000000000000 4 4 | ||||
d4a3ed9310e5 000000000000 6 6 | d4a3ed9310e5 000000000000 6 6 | ||||
Total: 18 18 | Total: 18 18 (0.0% bigger) | ||||
y: | y: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
577959738234 000000000000 70 8 | 577959738234 000000000000 70 8 | ||||
Total: 70 8 | Total: 70 8 (775.0% bigger) | ||||
$ hg cat -r ".^" x | $ hg cat -r ".^" x | ||||
x | x | ||||
x | x | ||||
x | x | ||||
x | x | ||||
Incremental repack | Incremental repack | ||||
$ hg debugdatapack $TESTTMP/hgcache/master/packs/*.dataidx | $ hg debugdatapack $TESTTMP/hgcache/master/packs/*.dataidx | ||||
x: | x: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
1bb2e6237e03 000000000000 8 8 | 1bb2e6237e03 000000000000 8 8 | ||||
d4a3ed9310e5 1bb2e6237e03 12 6 | d4a3ed9310e5 1bb2e6237e03 12 6 | ||||
aee31534993a 000000000000 4 4 | aee31534993a 000000000000 4 4 | ||||
1406e7411862 aee31534993a 12 2 | 1406e7411862 aee31534993a 12 2 | ||||
Total: 36 20 | Total: 36 20 (80.0% bigger) | ||||
y: | y: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
577959738234 000000000000 8 8 | 577959738234 000000000000 8 8 | ||||
Total: 8 8 | Total: 8 8 (0.0% bigger) |
-r--r--r-- 262 7535b6084226436bbdff33043969e7fa963e8428.histpack | -r--r--r-- 262 7535b6084226436bbdff33043969e7fa963e8428.histpack | ||||
$ hg debugdatapack $CACHEDIR/master/packs/manifests/*.datapack | $ hg debugdatapack $CACHEDIR/master/packs/manifests/*.datapack | ||||
(Root): | (Root): | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
1832e0765de9 000000000000 89 89 | 1832e0765de9 000000000000 89 89 | ||||
a0c8bcbbb45c 1832e0765de9 12 43 | a0c8bcbbb45c 1832e0765de9 12 43 | ||||
Total: 101 132 | Total: 101 132 (23.5% smaller) | ||||
dir: | dir: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
23226e7a252c 000000000000 43 43 | 23226e7a252c 000000000000 43 43 | ||||
Total: 43 43 | Total: 43 43 (0.0% bigger) | ||||
$ hg debughistorypack $CACHEDIR/master/packs/manifests/*.histpack | $ hg debughistorypack $CACHEDIR/master/packs/manifests/*.histpack | ||||
Node P1 Node P2 Node Link Node Copy From | Node P1 Node P2 Node Link Node Copy From | ||||
1832e0765de9 a0c8bcbbb45c 000000000000 8e83608cbe60 | 1832e0765de9 a0c8bcbbb45c 000000000000 8e83608cbe60 | ||||
a0c8bcbbb45c 000000000000 000000000000 1f0dee641bb7 | a0c8bcbbb45c 000000000000 000000000000 1f0dee641bb7 | ||||
7535b6084226436bbdff33043969e7fa963e8428.histidx | 7535b6084226436bbdff33043969e7fa963e8428.histidx | ||||
7535b6084226436bbdff33043969e7fa963e8428.histpack | 7535b6084226436bbdff33043969e7fa963e8428.histpack | ||||
$ hg debugdatapack .hg/cache/packs/manifests/*.datapack | $ hg debugdatapack .hg/cache/packs/manifests/*.datapack | ||||
(Root): | (Root): | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
1832e0765de9 000000000000 89 89 | 1832e0765de9 000000000000 89 89 | ||||
a0c8bcbbb45c 1832e0765de9 12 43 | a0c8bcbbb45c 1832e0765de9 12 43 | ||||
Total: 101 132 | Total: 101 132 (23.5% smaller) | ||||
dir: | dir: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
23226e7a252c 000000000000 43 43 | 23226e7a252c 000000000000 43 43 | ||||
Total: 43 43 | Total: 43 43 (0.0% bigger) | ||||
Test incremental revlog repacking | Test incremental revlog repacking | ||||
# 1. Make commit that we'll need to repack | # 1. Make commit that we'll need to repack | ||||
$ echo >> a | $ echo >> a | ||||
$ hg commit -Aqm 'modify a' | $ hg commit -Aqm 'modify a' | ||||
$ hg debugindex .hg/store/00manifesttree.i | $ hg debugindex .hg/store/00manifesttree.i | ||||
rev offset length delta linkrev nodeid p1 p2 | rev offset length delta linkrev nodeid p1 p2 | ||||
0 0 44 -1 0 a0c8bcbbb45c 000000000000 000000000000 | 0 0 44 -1 0 a0c8bcbbb45c 000000000000 000000000000 | ||||
Test incremental repack with limited revs only repacks those revs | Test incremental repack with limited revs only repacks those revs | ||||
$ rm -rf .hg/cache/packs/manifests | $ rm -rf .hg/cache/packs/manifests | ||||
$ hg repack --incremental --config treemanifest.repackstartrev=1 --config treemanifest.repackendrev=1 | $ hg repack --incremental --config treemanifest.repackstartrev=1 --config treemanifest.repackendrev=1 | ||||
$ hg debugdatapack .hg/cache/packs/manifests/*.datapack | $ hg debugdatapack .hg/cache/packs/manifests/*.datapack | ||||
(Root): | (Root): | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
1832e0765de9 000000000000 89 89 | 1832e0765de9 000000000000 89 89 | ||||
Total: 89 89 | Total: 89 89 (0.0% bigger) | ||||
dir: | dir: | ||||
Node Delta Base Delta Length Blob Size | Node Delta Base Delta Length Blob Size | ||||
23226e7a252c 000000000000 43 43 | 23226e7a252c 000000000000 43 43 | ||||
Total: 43 43 | Total: 43 43 (0.0% bigger) |