diff options
author | Junio C Hamano <gitster@pobox.com> | 2008-08-30 08:38:19 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2008-08-30 08:38:19 -0700 |
commit | df85f7855da44c730f942b330ada181209d09d7a (patch) | |
tree | b0f46ad28ff7a9e5c66bdfbbbba267094649924b /builtin-pack-objects.c | |
parent | 014aff7c928fff3926acbe946715ed1bc95830bf (diff) | |
parent | 6d6f9cddbe419710a36e778a50a7712ac4ba016f (diff) | |
download | git-df85f7855da44c730f942b330ada181209d09d7a.tar.gz |
Merge branch 'sp/missing-thin-base' into maint
* sp/missing-thin-base:
pack-objects: Allow missing base objects when creating thin packs
Diffstat (limited to 'builtin-pack-objects.c')
-rw-r--r-- | builtin-pack-objects.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c index d394c494a5..ef3befe57b 100644 --- a/builtin-pack-objects.c +++ b/builtin-pack-objects.c @@ -1095,9 +1095,12 @@ static void check_object(struct object_entry *entry) } entry->type = sha1_object_info(entry->idx.sha1, &entry->size); - if (entry->type < 0) - die("unable to get type of object %s", - sha1_to_hex(entry->idx.sha1)); + /* + * The error condition is checked in prepare_pack(). This is + * to permit a missing preferred base object to be ignored + * as a preferred base. Doing so can result in a larger + * pack file, but the transfer will still take place. + */ } static int pack_offset_sort(const void *_a, const void *_b) @@ -1721,8 +1724,12 @@ static void prepare_pack(int window, int depth) if (entry->no_try_delta) continue; - if (!entry->preferred_base) + if (!entry->preferred_base) { nr_deltas++; + if (entry->type < 0) + die("unable to get type of object %s", + sha1_to_hex(entry->idx.sha1)); + } delta_list[n++] = entry; } |