mirror of
https://github.com/git-for-windows/git.git
synced 2026-02-04 03:33:01 -06:00
pack-objects: extract should_attempt_deltas()
This will be helpful in a future change. Signed-off-by: Derrick Stolee <stolee@gmail.com>
This commit is contained in:
parent
58f859c532
commit
df0e2e37aa
@ -3283,6 +3283,33 @@ static int add_ref_tag(const char *tag UNUSED, const char *referent UNUSED, cons
|
||||
return 0;
|
||||
}
|
||||
|
||||
static int should_attempt_deltas(struct object_entry *entry)
|
||||
{
|
||||
if (DELTA(entry))
|
||||
return 0;
|
||||
|
||||
if (!entry->type_valid ||
|
||||
oe_size_less_than(&to_pack, entry, 50))
|
||||
return 0;
|
||||
|
||||
if (entry->no_try_delta)
|
||||
return 0;
|
||||
|
||||
if (!entry->preferred_base) {
|
||||
if (oe_type(entry) < 0)
|
||||
die(_("unable to get type of object %s"),
|
||||
oid_to_hex(&entry->idx.oid));
|
||||
} else if (oe_type(entry) < 0) {
|
||||
/*
|
||||
* This object is not found, but we
|
||||
* don't have to include it anyway.
|
||||
*/
|
||||
return 0;
|
||||
}
|
||||
|
||||
return 1;
|
||||
}
|
||||
|
||||
static void prepare_pack(int window, int depth)
|
||||
{
|
||||
struct object_entry **delta_list;
|
||||
@ -3313,33 +3340,11 @@ static void prepare_pack(int window, int depth)
|
||||
for (i = 0; i < to_pack.nr_objects; i++) {
|
||||
struct object_entry *entry = to_pack.objects + i;
|
||||
|
||||
if (DELTA(entry))
|
||||
/* This happens if we decided to reuse existing
|
||||
* delta from a pack. "reuse_delta &&" is implied.
|
||||
*/
|
||||
if (!should_attempt_deltas(entry))
|
||||
continue;
|
||||
|
||||
if (!entry->type_valid ||
|
||||
oe_size_less_than(&to_pack, entry, 50))
|
||||
continue;
|
||||
|
||||
if (entry->no_try_delta)
|
||||
continue;
|
||||
|
||||
if (!entry->preferred_base) {
|
||||
if (!entry->preferred_base)
|
||||
nr_deltas++;
|
||||
if (oe_type(entry) < 0)
|
||||
die(_("unable to get type of object %s"),
|
||||
oid_to_hex(&entry->idx.oid));
|
||||
} else {
|
||||
if (oe_type(entry) < 0) {
|
||||
/*
|
||||
* This object is not found, but we
|
||||
* don't have to include it anyway.
|
||||
*/
|
||||
continue;
|
||||
}
|
||||
}
|
||||
|
||||
delta_list[n++] = entry;
|
||||
}
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user