From: Jeff Hostetler Date: Tue, 05 Dec 2017 16:18:00 GMT Subject: Re: [PATCH v5 07/10] introduce fetch-object: fetch one promisor object Message-ID: <9432313e-0def-61af-1706-03640379a810@jeffhostetler.com> In-Reply-To: On 12/2/2017 3:33 PM, Christian Couder wrote: > On Tue, Nov 21, 2017 at 10:07 PM, Jeff Hostetler wrote: >> From: Jonathan Tan > >> +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. > That might help the retry/found_packed loop mentioned in your response on the next patch in this series. I'll make a TODO item for this to investigate. Thanks Jeff