Merge branch 'jk/fetch-quick-tag-following' into maint
When fetching from a remote that has many tags that are irrelevant to branches we are following, we used to waste way too many cycles when checking if the object pointed at by a tag (that we are not going to fetch!) exists in our repository too carefully. * jk/fetch-quick-tag-following: fetch: use "quick" has_sha1_file for tag following
This commit is contained in:
@ -233,9 +233,10 @@ static void find_non_local_tags(struct transport *transport,
|
||||
* as one to ignore by setting util to NULL.
|
||||
*/
|
||||
if (ends_with(ref->name, "^{}")) {
|
||||
if (item && !has_object_file(&ref->old_oid) &&
|
||||
if (item &&
|
||||
!has_object_file_with_flags(&ref->old_oid, HAS_SHA1_QUICK) &&
|
||||
!will_fetch(head, ref->old_oid.hash) &&
|
||||
!has_sha1_file(item->util) &&
|
||||
!has_sha1_file_with_flags(item->util, HAS_SHA1_QUICK) &&
|
||||
!will_fetch(head, item->util))
|
||||
item->util = NULL;
|
||||
item = NULL;
|
||||
@ -248,7 +249,8 @@ static void find_non_local_tags(struct transport *transport,
|
||||
* to check if it is a lightweight tag that we want to
|
||||
* fetch.
|
||||
*/
|
||||
if (item && !has_sha1_file(item->util) &&
|
||||
if (item &&
|
||||
!has_sha1_file_with_flags(item->util, HAS_SHA1_QUICK) &&
|
||||
!will_fetch(head, item->util))
|
||||
item->util = NULL;
|
||||
|
||||
@ -268,7 +270,8 @@ static void find_non_local_tags(struct transport *transport,
|
||||
* We may have a final lightweight tag that needs to be
|
||||
* checked to see if it needs fetching.
|
||||
*/
|
||||
if (item && !has_sha1_file(item->util) &&
|
||||
if (item &&
|
||||
!has_sha1_file_with_flags(item->util, HAS_SHA1_QUICK) &&
|
||||
!will_fetch(head, item->util))
|
||||
item->util = NULL;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user