On Thu, Sep 27, 2018 at 12:24 PM Jonathan Tan <jonathantanmy@xxxxxxxxxx> 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 }