pack-objects: tweak "do not even attempt delta" heuristics
authorJunio C Hamano <junkio@cox.net>
Wed, 15 Nov 2006 06:18:31 +0000 (22:18 -0800)
committerJunio C Hamano <junkio@cox.net>
Fri, 17 Nov 2006 08:09:52 +0000 (00:09 -0800)
The heuristics to give up deltification when both the source and the
target are both in the same pack affects negatively when we are
repacking the subset of objects in the existing pack.  This caused
any incremental updates to use suboptimal packs.  Tweak the heuristics
to avoid this problem.

Signed-off-by: Junio C Hamano <junkio@cox.net>
builtin-pack-objects.c

index 69e5dd39ca6f007d016ca562454cdb75ec9362fb..753bcd57b0084e7d3fa748f6a0fcef37a2ae8f3b 100644 (file)
@@ -1176,7 +1176,9 @@ static int try_delta(struct unpacked *trg, struct unpacked *src,
         * on an earlier try, but only when reusing delta data.
         */
        if (!no_reuse_delta && trg_entry->in_pack &&
-           trg_entry->in_pack == src_entry->in_pack)
+           trg_entry->in_pack == src_entry->in_pack &&
+           trg_entry->in_pack_type != OBJ_REF_DELTA &&
+           trg_entry->in_pack_type != OBJ_OFS_DELTA)
                return 0;
 
        /*