pack-objects: Allow missing base objects when creating thin packs
authorShawn O. Pearce <spearce@spearce.org>
Tue, 12 Aug 2008 18:31:06 +0000 (11:31 -0700)
committerJunio C Hamano <gitster@pobox.com>
Tue, 12 Aug 2008 22:39:46 +0000 (15:39 -0700)
commit6d6f9cddbe419710a36e778a50a7712ac4ba016f
treea84b6a06ad9d249cf2148deade4b09cee5b07366
parent04c6e9e9ca34226db095bbaa1218030f99f0b7c6
pack-objects: Allow missing base objects when creating thin packs

If we are building a thin pack and one of the base objects we would
consider for deltification is missing its OK, the other side already
has that base object.  We may be able to get a delta from another
object, or we can simply send the new object whole (no delta).

This change allows a shallow clone to store only the objects which
are unique to it, as well as the boundary commit and its trees, but
avoids storing the boundary blobs.  This special form of a shallow
clone is able to represent just the difference between two trees.

Pack objects change suggested by Nicolas Pitre.

Signed-off-by: Shawn O. Pearce <spearce@spearce.org>
Acked-by: Nicolas Pitre <nico@cam.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
builtin-pack-objects.c
t/t5306-pack-nobase.sh [new file with mode: 0755]