Mercurial > hg
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 |