On Thu, Sep 27, 2018 at 12:24 PM Jonathan Tan <[email protected]> wrote:
>
> If only hash literals are given on a "git fetch" command-line, tag
> following is not requested, and the fetch is done using protocol v2, a
> list of refs is not required from the remote. Therefore, optimize by
> invoking transport_get_remote_refs() only if we need the refs.
>
Makes sense
> +
> + /*
> + * We can avoid listing refs if all of them are exact
> + * OIDs
> + */
> + must_list_refs = 0;
> + for (i = 0; i < rs->nr; i++) {
> + if (!rs->items[i].exact_sha1) {
> + must_list_refs = 1;
> + break;
> + }
> + }
This seems to be a repeat pattern, Is it worth it to encapsulate it
as a function in transport or refs?
int must_list_refs(struct ref **to_fetch)
{
// body as the loop above
}