зеркало из https://github.com/microsoft/git.git
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:
Коммит
901c907d83
|
@ -8,4 +8,9 @@ Fixes since v1.7.6.5
|
|||
directory when two paths in question are in adjacent directories and
|
||||
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.
|
||||
|
|
|
@ -1421,11 +1421,16 @@ static int try_delta(struct unpacked *trg, struct unpacked *src,
|
|||
return -1;
|
||||
|
||||
/*
|
||||
* We do not bother to try a delta that we discarded
|
||||
* on an earlier try, but only when reusing delta data.
|
||||
* We do not bother to try a delta that we discarded on an
|
||||
* 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 &&
|
||||
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_OFS_DELTA)
|
||||
return 0;
|
||||
|
|
Загрузка…
Ссылка в новой задаче