On 12/2/2017 3:33 PM, Christian Couder wrote:
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.
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