diff options
author | Junio C Hamano <gitster@pobox.com> | 2017-03-28 13:52:22 -0700 |
---|---|---|
committer | Junio C Hamano <gitster@pobox.com> | 2017-03-28 13:52:22 -0700 |
commit | 2b69d3116ffb4a800c408b8cb0b508ca1886ea84 (patch) | |
tree | 9da24f1cd0d0a7bfc7b79a086c67f55c1249b513 /transport.c | |
parent | 41534b626ebdf3fb4fb692749245b90ff2bb7e13 (diff) | |
parent | d56583ded679f2eade3994d855c8d605e2964710 (diff) | |
download | git-2b69d3116ffb4a800c408b8cb0b508ca1886ea84.tar.gz git-2b69d3116ffb4a800c408b8cb0b508ca1886ea84.tar.xz |
Merge branch 'mm/fetch-show-error-message-on-unadvertised-object' into maint
"git fetch" that requests a commit by object name, when the other
side does not allow such an request, failed without much
explanation.
* mm/fetch-show-error-message-on-unadvertised-object:
fetch-pack: add specific error for fetching an unadvertised object
fetch_refs_via_pack: call report_unmatched_refs
fetch-pack: move code to report unmatched refs to a function
Diffstat (limited to 'transport.c')
-rw-r--r-- | transport.c | 14 |
1 files changed, 9 insertions, 5 deletions
diff --git a/transport.c b/transport.c index b6c5652d6..b58f5c8cd 100644 --- a/transport.c +++ b/transport.c @@ -204,6 +204,7 @@ static struct ref *get_refs_via_connect(struct transport *transport, int for_pus static int fetch_refs_via_pack(struct transport *transport, int nr_heads, struct ref **to_fetch) { + int ret = 0; struct git_transport_data *data = transport->data; struct ref *refs; char *dest = xstrdup(transport->url); @@ -241,19 +242,22 @@ static int fetch_refs_via_pack(struct transport *transport, &transport->pack_lockfile); close(data->fd[0]); close(data->fd[1]); - if (finish_connect(data->conn)) { - free_refs(refs); - refs = NULL; - } + if (finish_connect(data->conn)) + ret = -1; data->conn = NULL; data->got_remote_heads = 0; data->options.self_contained_and_connected = args.self_contained_and_connected; + if (refs == NULL) + ret = -1; + if (report_unmatched_refs(to_fetch, nr_heads)) + ret = -1; + free_refs(refs_tmp); free_refs(refs); free(dest); - return (refs ? 0 : -1); + return ret; } static int push_had_errors(struct ref *ref) |