Merge branch 'maint-1.7.6' into maint-1.7.7
* maint-1.7.6: Update draft release notes to 1.7.6.6 thin-pack: try harder to use preferred base objects as base
This commit is contained in:
commit
901c907d83
@ -8,4 +8,9 @@ Fixes since v1.7.6.5
|
|||||||
directory when two paths in question are in adjacent directories and
|
directory when two paths in question are in adjacent directories and
|
||||||
the name of the one directory is a prefix of the other.
|
the name of the one directory is a prefix of the other.
|
||||||
|
|
||||||
|
* When producing a "thin pack" (primarily used in bundles and smart
|
||||||
|
HTTP transfers) out of a fully packed repository, we unnecessarily
|
||||||
|
avoided sending recent objects as a delta against objects we know
|
||||||
|
the other side has.
|
||||||
|
|
||||||
Also contains minor fixes and documentation updates.
|
Also contains minor fixes and documentation updates.
|
||||||
|
@ -1421,11 +1421,16 @@ static int try_delta(struct unpacked *trg, struct unpacked *src,
|
|||||||
return -1;
|
return -1;
|
||||||
|
|
||||||
/*
|
/*
|
||||||
* We do not bother to try a delta that we discarded
|
* We do not bother to try a delta that we discarded on an
|
||||||
* on an earlier try, but only when reusing delta data.
|
* earlier try, but only when reusing delta data. Note that
|
||||||
|
* src_entry that is marked as the preferred_base should always
|
||||||
|
* be considered, as even if we produce a suboptimal delta against
|
||||||
|
* it, we will still save the transfer cost, as we already know
|
||||||
|
* the other side has it and we won't send src_entry at all.
|
||||||
*/
|
*/
|
||||||
if (reuse_delta && trg_entry->in_pack &&
|
if (reuse_delta && trg_entry->in_pack &&
|
||||||
trg_entry->in_pack == src_entry->in_pack &&
|
trg_entry->in_pack == src_entry->in_pack &&
|
||||||
|
!src_entry->preferred_base &&
|
||||||
trg_entry->in_pack_type != OBJ_REF_DELTA &&
|
trg_entry->in_pack_type != OBJ_REF_DELTA &&
|
||||||
trg_entry->in_pack_type != OBJ_OFS_DELTA)
|
trg_entry->in_pack_type != OBJ_OFS_DELTA)
|
||||||
return 0;
|
return 0;
|
||||||
|
Loading…
Reference in New Issue
Block a user