Re: [PATCH v5 07/10] introduce fetch-object: fetch one promisor object
- From
- Jeff Hostetler <git@jeffhostetler.com>
- Date
- Dec 5, 2017, 16:18 UTC
- Message-ID
- <9432313e-0def-61af-1706-03640379a810@jeffhostetler.com>
- In-Reply-To
- <CAP8UFD1dm4EJXU3VdgGMDawy3jCT20hHQXwZxvtwy7_eomz9Fw@mail.gmail.com>
On 12/2/2017 3:33 PM, Christian Couder wrote:
Show 24 quoted lines
> On Tue, Nov 21, 2017 at 10:07 PM, Jeff Hostetler <git@jeffhostetler.com> wrote:
>> From: Jonathan Tan <jonathantanmy@google.com>
>
>> +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