summaryrefslogtreecommitdiff
path: root/builtin-pack-objects.c
diff options
context:
space:
mode:
authorJunio C Hamano <gitster@pobox.com>2008-08-30 15:38:19 (GMT)
committerJunio C Hamano <gitster@pobox.com>2008-08-30 15:38:19 (GMT)
commitdf85f7855da44c730f942b330ada181209d09d7a (patch)
treeb0f46ad28ff7a9e5c66bdfbbbba267094649924b /builtin-pack-objects.c
parent014aff7c928fff3926acbe946715ed1bc95830bf (diff)
parent6d6f9cddbe419710a36e778a50a7712ac4ba016f (diff)
downloadgit-df85f7855da44c730f942b330ada181209d09d7a.zip
git-df85f7855da44c730f942b330ada181209d09d7a.tar.gz
git-df85f7855da44c730f942b330ada181209d09d7a.tar.bz2
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.c15
1 files changed, 11 insertions, 4 deletions
diff --git a/builtin-pack-objects.c b/builtin-pack-objects.c
index d394c49..ef3befe 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;
}