3 ms·
Git bundles are pretty nice, they are just a packfile [1], with a list of refs prepended, that you can clone like a remote. But this also means they have prett
by phiresky 8y ago
Git bundles are pretty nice, they are just a packfile [1], with a list of refs prepended, that you can clone like a remote.
But this also means they have pretty inefficient compression, since every object (or delta) is packed using zlib on its own. For packfiles this is good because it allows random access, but for bundles it would be better to disable this compression (set it to level 0) and compress the whole bundle instead:
435M default.bundle
412M default.bundle.bz2
410M default.bundle.gz
401M default.bundle.xz
978M uncompressed.bundle
290M uncompressed.bundle.bz2
330M uncompressed.bundle.gz
245M uncompressed.bundle.xz
That's 245MB vs. 401MB, 40% space savings! It can't be cloned directly, though.
Produced using `git bundle create fname HEAD` on linux v3.0 after:
`git repack -a -d -F --depth=100 --window=100` (default compression level)
`git -c pack.compression=0 repack -a -d -F --depth=100 --window=100` (no zlib compression)
[1] https://github.com/git/git/blob/master/Documentation/technical/pack-format.txt https://github.com/git/git/blob/master/Documentation/technic...