Code

git-bundle: Make thin packs
authorJohannes Schindelin <Johannes.Schindelin@gmx.de>
Thu, 8 Mar 2007 00:27:44 +0000 (01:27 +0100)
committerJunio C Hamano <junkio@cox.net>
Thu, 8 Mar 2007 02:02:10 +0000 (18:02 -0800)
commit9e64d109f905afb225f48409c4e0e068b2203332
tree95bebd9844899a913f461da7177b04864b274195
parent18449ab0e9754ae04ae2f232449241ac361f3db4
git-bundle: Make thin packs

Thin packs are way smaller, but they rely on the receiving end to have the
base objects. However, Git's pack protocol also uses thin packs by
default. So make the packs contained in bundles thin, since bundles are
just another transport.

The patch looks a bit bigger than intended, mainly because --thin
_implies_ that pack-objects should run its own rev-list. Therefore, this
patch removes all the stuff we used to roll rev-list ourselves.

This commit also changes behaviour slightly: since we now know early
enough if a specified ref is _not_ contained in the pack, we can avoid
putting that ref into the pack. So, we don't die() here, but warn()
instead, and skip that ref.

Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
builtin-bundle.c