Skip to content

Commit baa79ca

Browse files
committed
Merge branch 'bd/delta'
* bd/delta: pack-objects: Prefer shallower deltas if the size is equal
2 parents 1d73526 + 848d732 commit baa79ca

File tree

1 file changed

+7
-1
lines changed

1 file changed

+7
-1
lines changed

builtin-pack-objects.c

Lines changed: 7 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1337,7 +1337,7 @@ static int try_delta(struct unpacked *trg, struct unpacked *src,
13371337
if (max_size == 0)
13381338
return 0;
13391339
if (trg_entry->delta && trg_entry->delta_size <= max_size)
1340-
max_size = trg_entry->delta_size-1;
1340+
max_size = trg_entry->delta_size;
13411341
src_size = src_entry->size;
13421342
sizediff = src_size < trg_size ? trg_size - src_size : 0;
13431343
if (sizediff >= max_size)
@@ -1371,6 +1371,12 @@ static int try_delta(struct unpacked *trg, struct unpacked *src,
13711371
return 0;
13721372

13731373
if (trg_entry->delta_data) {
1374+
/* Prefer only shallower same-sized deltas. */
1375+
if (delta_size == trg_entry->delta_size &&
1376+
src_entry->depth + 1 >= trg_entry->depth) {
1377+
free(delta_buf);
1378+
return 0;
1379+
}
13741380
delta_cache_size -= trg_entry->delta_size;
13751381
free(trg_entry->delta_data);
13761382
}

0 commit comments

Comments
 (0)