Progress on multiparent bundles
aaron.bentley at utoronto.ca
Wed Jun 13 16:17:13 BST 2007
-----BEGIN PGP SIGNED MESSAGE-----
I've been working on multiparent bundles, and it's going well.
The goals are to make bundles...
2. faster to generate and apply
3. robust against email whitespace munging
The tradeoffs will be:
1. maximum application speed will require that the target repository use
the same inventory serialization format as the source repository.
2. all bundles, even one-line-fix bundles, will contain a
3. revisions are stored as fulltexts, to support the existing bundle
Not yet done:
1. compress pack content
2. mime64-encode compressed content
3. include a human-readable diff
4. validate results against human-readable diff
5. validate results against Testament or similar
6. handle different inventory serialization formats
7. optimize mpdiff generation by extracting SequenceMatcher.get_blocks()
output from knit deltas.
8. optimize mpdiff application by converting mpdiffs directly to knit
Generation speed with also be improved when the new graph API branch is
currently, we spend 23.71% of our time in common_ancestor and 16.93% of
our time doing a graph difference operation. Both operations will
become much faster with the new graph API.
Bundle generation performance:
$ time bzr bundle > /dev/null Using saved location: /mnt/bzr/bzrrepo/bzr.dev
$ time ./bzr bundle > /dev/null
Using saved location: /mnt/bzr/bzrrepo/bzr.dev
CURRENT: 11M (bzipped 2.0M)
NEW: 223K (bzipped 35K)
Additional note: This format uses the new generic container format,
which Andrew Bennetts is developing.
-----BEGIN PGP SIGNATURE-----
Version: GnuPG v1.4.1 (GNU/Linux)
Comment: Using GnuPG with Mozilla - http://enigmail.mozdev.org
-----END PGP SIGNATURE-----
More information about the bazaar