diff --git a/remotefilelog/debugcommands.py b/remotefilelog/debugcommands.py --- a/remotefilelog/debugcommands.py +++ b/remotefilelog/debugcommands.py @@ -220,12 +220,19 @@ totaldeltasize = defaultdict(lambda: 0) totalblobsize = defaultdict(lambda: 0) def printtotals(filename): - if filename in totaldeltasize or filename in totaldeltasize: - ui.write("Total:%s%s %s\n" % ( - "".ljust(2 * hashlen - len("Total:")), - str(totaldeltasize[filename]).ljust(12), - str(totalblobsize[filename]).ljust(9) - )) + if not (filename in totaldeltasize or filename in totaldeltasize): + 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:")), + str(totaldeltasize[filename]).ljust(12), + str(totalblobsize[filename]).ljust(9), + deltastr + )) for filename, node, deltabase, deltalen in dpack.iterentries(): if filename != lastfilename: printtotals(lastfilename) diff --git a/tests/test-remotefilelog-bgprefetch.t b/tests/test-remotefilelog-bgprefetch.t --- a/tests/test-remotefilelog-bgprefetch.t +++ b/tests/test-remotefilelog-bgprefetch.t @@ -156,23 +156,23 @@ w: Node Delta Base Delta Length Blob Size bb6ccd5dceaa 000000000000 2 2 - Total: 2 2 + Total: 2 2 (0.0% bigger) x: Node Delta Base Delta Length Blob Size ef95c5376f34 000000000000 3 3 1406e7411862 ef95c5376f34 14 2 - Total: 17 5 + Total: 17 5 (240.0% bigger) y: Node Delta Base Delta Length Blob Size 076f5e2225b3 000000000000 2 2 - Total: 2 2 + Total: 2 2 (0.0% bigger) z: Node Delta Base Delta Length Blob Size 69a1b6752270 000000000000 2 2 - Total: 2 2 + Total: 2 2 (0.0% bigger) # background prefetch with repack on commit when wcprevset configured @@ -206,23 +206,23 @@ w: Node Delta Base Delta Length Blob Size bb6ccd5dceaa 000000000000 2 2 - Total: 2 2 + Total: 2 2 (0.0% bigger) x: Node Delta Base Delta Length Blob Size ef95c5376f34 000000000000 3 3 1406e7411862 ef95c5376f34 14 2 - Total: 17 5 + Total: 17 5 (240.0% bigger) y: Node Delta Base Delta Length Blob Size 076f5e2225b3 000000000000 2 2 - Total: 2 2 + Total: 2 2 (0.0% bigger) z: Node Delta Base Delta Length Blob Size 69a1b6752270 000000000000 2 2 - Total: 2 2 + Total: 2 2 (0.0% bigger) # background prefetch with repack on rebase when wcprevset configured @@ -248,23 +248,23 @@ w: Node Delta Base Delta Length Blob Size bb6ccd5dceaa 000000000000 2 2 - Total: 2 2 + Total: 2 2 (0.0% bigger) x: Node Delta Base Delta Length Blob Size ef95c5376f34 000000000000 3 3 1406e7411862 ef95c5376f34 14 2 - Total: 17 5 + Total: 17 5 (240.0% bigger) y: Node Delta Base Delta Length Blob Size 076f5e2225b3 000000000000 2 2 - Total: 2 2 + Total: 2 2 (0.0% bigger) z: Node Delta Base Delta Length Blob Size 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 @@ -293,23 +293,23 @@ w: Node Delta Base Delta Length Blob Size bb6ccd5dceaa 000000000000 2 2 - Total: 2 2 + Total: 2 2 (0.0% bigger) x: Node Delta Base Delta Length Blob Size ef95c5376f34 000000000000 3 3 1406e7411862 ef95c5376f34 14 2 - Total: 17 5 + Total: 17 5 (240.0% bigger) y: Node Delta Base Delta Length Blob Size 076f5e2225b3 000000000000 2 2 - Total: 2 2 + Total: 2 2 (0.0% bigger) z: Node Delta Base Delta Length Blob Size 69a1b6752270 000000000000 2 2 - Total: 2 2 + Total: 2 2 (0.0% bigger) # Check that foreground prefetch fetches revs specified by '. + draft() + bgprefetchrevs + pullprefetch' @@ -335,23 +335,23 @@ w: Node Delta Base Delta Length Blob Size bb6ccd5dceaa 000000000000 2 2 - Total: 2 2 + Total: 2 2 (0.0% bigger) x: Node Delta Base Delta Length Blob Size ef95c5376f34 000000000000 3 3 1406e7411862 ef95c5376f34 14 2 - Total: 17 5 + Total: 17 5 (240.0% bigger) y: Node Delta Base Delta Length Blob Size 076f5e2225b3 000000000000 2 2 - Total: 2 2 + Total: 2 2 (0.0% bigger) z: Node Delta Base Delta Length Blob Size 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 # It ensures that Mercurial looks not only in loose files but in packs as well diff --git a/tests/test-remotefilelog-gcrepack.t b/tests/test-remotefilelog-gcrepack.t --- a/tests/test-remotefilelog-gcrepack.t +++ b/tests/test-remotefilelog-gcrepack.t @@ -55,13 +55,13 @@ x: Node Delta Base Delta Length Blob Size 1406e7411862 000000000000 2 2 - Total: 2 2 + Total: 2 2 (0.0% bigger) y: Node Delta Base Delta Length Blob Size 50dbc4572b8e 000000000000 3 3 076f5e2225b3 50dbc4572b8e 14 2 - Total: 17 5 + Total: 17 5 (240.0% bigger) # Test garbage collection during repack @@ -88,7 +88,7 @@ y: Node Delta Base Delta Length Blob Size 50dbc4572b8e 000000000000 3 3 - Total: 3 3 + Total: 3 3 (0.0% bigger) # Prefetch all data again and repack for later garbage collection @@ -114,13 +114,13 @@ x: Node Delta Base Delta Length Blob Size 1406e7411862 000000000000 2 2 - Total: 2 2 + Total: 2 2 (0.0% bigger) y: Node Delta Base Delta Length Blob Size 50dbc4572b8e 000000000000 3 3 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 # 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 @@ -147,10 +147,10 @@ x: Node Delta Base Delta Length Blob Size 1406e7411862 000000000000 2 2 - Total: 2 2 + Total: 2 2 (0.0% bigger) y: Node Delta Base Delta Length Blob Size 50dbc4572b8e 000000000000 3 3 076f5e2225b3 50dbc4572b8e 14 2 - Total: 17 5 + Total: 17 5 (240.0% bigger) diff --git a/tests/test-remotefilelog-repack-fast.t b/tests/test-remotefilelog-repack-fast.t --- a/tests/test-remotefilelog-repack-fast.t +++ b/tests/test-remotefilelog-repack-fast.t @@ -159,7 +159,7 @@ 1bb2e6237e03 000000000000 8 8 d4a3ed9310e5 1bb2e6237e03 12 6 aee31534993a d4a3ed9310e5 12 4 - Total: 32 18 + Total: 32 18 (77.8% bigger) $ hg debugdatapack --long $TESTTMP/hgcache/master/packs/*.datapack x: @@ -167,7 +167,7 @@ 1bb2e6237e035c8f8ef508e281f1ce075bc6db72 0000000000000000000000000000000000000000 8 8 d4a3ed9310e5bd9887e3bf779da5077efab28216 1bb2e6237e035c8f8ef508e281f1ce075bc6db72 12 6 aee31534993a501858fb6dd96a065671922e7d51 d4a3ed9310e5bd9887e3bf779da5077efab28216 12 4 - Total: 32 18 + Total: 32 18 (77.8% bigger) $ hg debugdatapack $TESTTMP/hgcache/master/packs/*.datapack --node d4a3ed9310e5bd9887e3bf779da5077efab28216 x @@ -255,12 +255,12 @@ 1bb2e6237e03 000000000000 8 8 aee31534993a 000000000000 4 4 d4a3ed9310e5 000000000000 6 6 - Total: 18 18 + Total: 18 18 (0.0% bigger) y: Node Delta Base Delta Length Blob Size 577959738234 000000000000 70 8 - Total: 70 8 + Total: 70 8 (775.0% bigger) $ hg cat -r ".^" x x diff --git a/tests/test-remotefilelog-repack.t b/tests/test-remotefilelog-repack.t --- a/tests/test-remotefilelog-repack.t +++ b/tests/test-remotefilelog-repack.t @@ -154,7 +154,7 @@ 1bb2e6237e03 000000000000 8 8 d4a3ed9310e5 1bb2e6237e03 12 6 aee31534993a d4a3ed9310e5 12 4 - Total: 32 18 + Total: 32 18 (77.8% bigger) $ hg debugdatapack --long $TESTTMP/hgcache/master/packs/*.datapack x: @@ -162,7 +162,7 @@ 1bb2e6237e035c8f8ef508e281f1ce075bc6db72 0000000000000000000000000000000000000000 8 8 d4a3ed9310e5bd9887e3bf779da5077efab28216 1bb2e6237e035c8f8ef508e281f1ce075bc6db72 12 6 aee31534993a501858fb6dd96a065671922e7d51 d4a3ed9310e5bd9887e3bf779da5077efab28216 12 4 - Total: 32 18 + Total: 32 18 (77.8% bigger) $ hg debugdatapack $TESTTMP/hgcache/master/packs/*.datapack --node d4a3ed9310e5bd9887e3bf779da5077efab28216 x @@ -250,12 +250,12 @@ 1bb2e6237e03 000000000000 8 8 aee31534993a 000000000000 4 4 d4a3ed9310e5 000000000000 6 6 - Total: 18 18 + Total: 18 18 (0.0% bigger) y: Node Delta Base Delta Length Blob Size 577959738234 000000000000 70 8 - Total: 70 8 + Total: 70 8 (775.0% bigger) $ hg cat -r ".^" x x @@ -395,9 +395,9 @@ d4a3ed9310e5 1bb2e6237e03 12 6 aee31534993a 000000000000 4 4 1406e7411862 aee31534993a 12 2 - Total: 36 20 + Total: 36 20 (80.0% bigger) y: Node Delta Base Delta Length Blob Size 577959738234 000000000000 8 8 - Total: 8 8 + Total: 8 8 (0.0% bigger) diff --git a/tests/test-treemanifest-repack.t b/tests/test-treemanifest-repack.t --- a/tests/test-treemanifest-repack.t +++ b/tests/test-treemanifest-repack.t @@ -90,12 +90,12 @@ Node Delta Base Delta Length Blob Size 1832e0765de9 000000000000 89 89 a0c8bcbbb45c 1832e0765de9 12 43 - Total: 101 132 + Total: 101 132 (23.5% smaller) dir: Node Delta Base Delta Length Blob Size 23226e7a252c 000000000000 43 43 - Total: 43 43 + Total: 43 43 (0.0% bigger) $ hg debughistorypack $CACHEDIR/master/packs/manifests/*.histpack @@ -194,12 +194,12 @@ Node Delta Base Delta Length Blob Size 1832e0765de9 000000000000 89 89 a0c8bcbbb45c 1832e0765de9 12 43 - Total: 101 132 + Total: 101 132 (23.5% smaller) dir: Node Delta Base Delta Length Blob Size 23226e7a252c 000000000000 43 43 - Total: 43 43 + Total: 43 43 (0.0% bigger) Test incremental revlog repacking # 1. Make commit that we'll need to repack @@ -234,9 +234,9 @@ (Root): Node Delta Base Delta Length Blob Size 1832e0765de9 000000000000 89 89 - Total: 89 89 + Total: 89 89 (0.0% bigger) dir: Node Delta Base Delta Length Blob Size 23226e7a252c 000000000000 43 43 - Total: 43 43 + Total: 43 43 (0.0% bigger)