comparison tests/test-obsolete.t @ 36965:b89a7ef29013

bundle: include advisory rev branch cache part in bundle2 bundle `hg bundle` command producing bundle2 will now include an optional part containing the revision-branch cache data. The data sent are mostly nodes so it is quite compact. The goal of the rev-branch-cache is to speed up branch map computation, especially when the branchmap gets invalidated so we send data for all exchanged changesets. In addition, computing the relevant heads to send in case of partial pulling would be challenging. As a reminder, the rev branch cache data significantly speed up branch computation. Having it around provides a small speedup to pull/clone and much higher tolerance to branch map cache invalidation that might happens from later commands. On the Mercurial repository, computing the visible branchmap from scratch move from 2.00 seconds to 0.34s (a -83% speedup). Using this new part, Unbundling the full Mercurial repository moves from 25.736 seconds to 24.030 seconds (around -7% speedup). The bundle size increase is around 3% (from 22.43 MB to 23.13MB) On an half a million revision repository with twenty thousand branches, computing the branchmap moves from 75 seconds to 45 second (-40%) if the caches is used. A bundle containing 50 000 changesets in such repository get a 0.5% size increase from such part for a -3% unbundling time speedup.
author Boris Feld <boris.feld@octobus.net>
date Wed, 21 Feb 2018 17:33:00 +0100
parents f21798a6bc20
children 7c18798fc24d
comparison
equal deleted inserted replaced
36964:79b73be4dda5 36965:b89a7ef29013
1425 1425
1426 $ hg debugbundle .hg/strip-backup/e008cf283490-*-backup.hg 1426 $ hg debugbundle .hg/strip-backup/e008cf283490-*-backup.hg
1427 Stream params: {Compression: BZ} 1427 Stream params: {Compression: BZ}
1428 changegroup -- {nbchanges: 1, version: 02} 1428 changegroup -- {nbchanges: 1, version: 02}
1429 e008cf2834908e5d6b0f792a9d4b0e2272260fb8 1429 e008cf2834908e5d6b0f792a9d4b0e2272260fb8
1430 cache:rev-branch-cache -- {}
1430 phase-heads -- {} 1431 phase-heads -- {}
1431 e008cf2834908e5d6b0f792a9d4b0e2272260fb8 draft 1432 e008cf2834908e5d6b0f792a9d4b0e2272260fb8 draft
1432 1433
1433 $ hg pull .hg/strip-backup/e008cf283490-*-backup.hg 1434 $ hg pull .hg/strip-backup/e008cf283490-*-backup.hg
1434 pulling from .hg/strip-backup/e008cf283490-ede36964-backup.hg 1435 pulling from .hg/strip-backup/e008cf283490-ede36964-backup.hg
1466 $ hg debugbundle .hg/strip-backup/e016b03fd86f-*-backup.hg 1467 $ hg debugbundle .hg/strip-backup/e016b03fd86f-*-backup.hg
1467 Stream params: {Compression: BZ} 1468 Stream params: {Compression: BZ}
1468 changegroup -- {nbchanges: 2, version: 02} 1469 changegroup -- {nbchanges: 2, version: 02}
1469 e016b03fd86fcccc54817d120b90b751aaf367d6 1470 e016b03fd86fcccc54817d120b90b751aaf367d6
1470 b0551702f918510f01ae838ab03a463054c67b46 1471 b0551702f918510f01ae838ab03a463054c67b46
1472 cache:rev-branch-cache -- {}
1471 obsmarkers -- {} 1473 obsmarkers -- {}
1472 version: 1 (92 bytes) 1474 version: 1 (92 bytes)
1473 e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'} 1475 e008cf2834908e5d6b0f792a9d4b0e2272260fb8 b0551702f918510f01ae838ab03a463054c67b46 0 (Thu Jan 01 00:00:00 1970 +0000) {'ef1': '8', 'operation': 'amend', 'user': 'test'}
1474 phase-heads -- {} 1476 phase-heads -- {}
1475 b0551702f918510f01ae838ab03a463054c67b46 draft 1477 b0551702f918510f01ae838ab03a463054c67b46 draft