pack-object: tolerate broken packs that have duplicated objects
authorJunio C Hamano <gitster@pobox.com>
Thu, 17 Nov 2011 06:04:03 +0000 (22:04 -0800)
committerJunio C Hamano <gitster@pobox.com>
Thu, 17 Nov 2011 06:06:08 +0000 (22:06 -0800)
When --reuse-delta is in effect (which is the default), and an existing
pack in the repository has the same object registered twice (e.g. one copy
in a non-delta format and the other copy in a delta against some other
object), an attempt to repack the repository can result in a cyclic delta
dependency, causing write_one() function to infinitely recurse into
itself.

Detect such a case and break the loopy dependency by writing out an object
that is involved in such a loop in the non-delta format.

Signed-off-by: Junio C Hamano <gitster@pobox.com>
No differences found