On Tue, Nov 21, 2017 at 10:07 PM, Jeff Hostetler <git@xxxxxxxxxxxxxxxxx> wrote: > From: Jonathan Tan <jonathantanmy@xxxxxxxxxx> > +void fetch_object(const char *remote_name, const unsigned char *sha1) > +{ > + struct remote *remote; > + struct transport *transport; > + struct ref *ref; > + > + remote = remote_get(remote_name); > + if (!remote->url[0]) > + die(_("Remote with no URL")); > + transport = transport_get(remote, remote->url[0]); > + > + ref = alloc_ref(sha1_to_hex(sha1)); > + hashcpy(ref->old_oid.hash, sha1); > + transport_set_option(transport, TRANS_OPT_FROM_PROMISOR, "1"); > + transport_set_option(transport, TRANS_OPT_NO_HAVES, "1"); > + transport_fetch_refs(transport, ref); > +} I think it would be interesting to return what transport_fetch_refs() returns, so that a caller could know if an error happened.