revert(3p/git): Revert merge of git upstream at v2.26.2

This causes cgit to serve error pages, which is undesirable.

This reverts commit 5229c9b232, reversing
changes made to f2b211131f.
This commit is contained in:
Vincent Ambo 2020-05-26 00:06:52 +01:00
parent 6f8fbf4aa4
commit 93ba78d6f4
1006 changed files with 60537 additions and 148724 deletions

View file

@ -122,7 +122,6 @@ static void set_upstreams(struct transport *transport, struct ref *refs,
struct bundle_transport_data {
int fd;
struct bundle_header header;
unsigned get_refs_from_bundle_called : 1;
};
static struct ref *get_refs_from_bundle(struct transport *transport,
@ -136,8 +135,6 @@ static struct ref *get_refs_from_bundle(struct transport *transport,
if (for_push)
return NULL;
data->get_refs_from_bundle_called = 1;
if (data->fd > 0)
close(data->fd);
data->fd = read_bundle_header(transport->url, &data->header);
@ -157,9 +154,6 @@ static int fetch_refs_from_bundle(struct transport *transport,
int nr_heads, struct ref **to_fetch)
{
struct bundle_transport_data *data = transport->data;
if (!data->get_refs_from_bundle_called)
get_refs_from_bundle(transport, 0, NULL);
return unbundle(the_repository, &data->header, data->fd,
transport->progress ? BUNDLE_VERBOSE : 0);
}
@ -230,7 +224,6 @@ static int set_git_option(struct git_transport_options *opts,
opts->no_dependents = !!value;
return 0;
} else if (!strcmp(name, TRANS_OPT_LIST_OBJECTS_FILTER)) {
list_objects_filter_die_if_populated(&opts->filter_options);
parse_list_objects_filter(&opts->filter_options, value);
return 0;
}
@ -737,7 +730,7 @@ static int disconnect_git(struct transport *transport)
{
struct git_transport_data *data = transport->data;
if (data->conn) {
if (data->got_remote_heads && !transport->stateless_rpc)
if (data->got_remote_heads)
packet_flush(data->fd[1]);
close(data->fd[0]);
close(data->fd[1]);
@ -749,6 +742,7 @@ static int disconnect_git(struct transport *transport)
}
static struct transport_vtable taken_over_vtable = {
1,
NULL,
get_refs_via_connect,
fetch_refs_via_pack,
@ -898,6 +892,7 @@ void transport_check_allowed(const char *type)
}
static struct transport_vtable bundle_vtable = {
0,
NULL,
get_refs_from_bundle,
fetch_refs_from_bundle,
@ -907,6 +902,7 @@ static struct transport_vtable bundle_vtable = {
};
static struct transport_vtable builtin_smart_vtable = {
1,
NULL,
get_refs_via_connect,
fetch_refs_via_pack,
@ -1145,10 +1141,8 @@ int transport_push(struct repository *r,
refspec_ref_prefixes(rs, &ref_prefixes);
trace2_region_enter("transport_push", "get_refs_list", r);
remote_refs = transport->vtable->get_refs_list(transport, 1,
&ref_prefixes);
trace2_region_leave("transport_push", "get_refs_list", r);
argv_array_clear(&ref_prefixes);
@ -1184,7 +1178,6 @@ int transport_push(struct repository *r,
struct ref *ref = remote_refs;
struct oid_array commits = OID_ARRAY_INIT;
trace2_region_enter("transport_push", "push_submodules", r);
for (; ref; ref = ref->next)
if (!is_null_oid(&ref->new_oid))
oid_array_append(&commits,
@ -1197,11 +1190,9 @@ int transport_push(struct repository *r,
transport->push_options,
pretend)) {
oid_array_clear(&commits);
trace2_region_leave("transport_push", "push_submodules", r);
die(_("failed to push all needed submodules"));
}
oid_array_clear(&commits);
trace2_region_leave("transport_push", "push_submodules", r);
}
if (((flags & TRANSPORT_RECURSE_SUBMODULES_CHECK) ||
@ -1212,7 +1203,6 @@ int transport_push(struct repository *r,
struct string_list needs_pushing = STRING_LIST_INIT_DUP;
struct oid_array commits = OID_ARRAY_INIT;
trace2_region_enter("transport_push", "check_submodules", r);
for (; ref; ref = ref->next)
if (!is_null_oid(&ref->new_oid))
oid_array_append(&commits,
@ -1223,19 +1213,15 @@ int transport_push(struct repository *r,
transport->remote->name,
&needs_pushing)) {
oid_array_clear(&commits);
trace2_region_leave("transport_push", "check_submodules", r);
die_with_unpushed_submodules(&needs_pushing);
}
string_list_clear(&needs_pushing, 0);
oid_array_clear(&commits);
trace2_region_leave("transport_push", "check_submodules", r);
}
if (!(flags & TRANSPORT_RECURSE_SUBMODULES_ONLY)) {
trace2_region_enter("transport_push", "push_refs", r);
if (!(flags & TRANSPORT_RECURSE_SUBMODULES_ONLY))
push_ret = transport->vtable->push_refs(transport, remote_refs, flags);
trace2_region_leave("transport_push", "push_refs", r);
} else
else
push_ret = 0;
err = push_had_errors(remote_refs);
ret = push_ret | err;
@ -1299,6 +1285,15 @@ int transport_fetch_refs(struct transport *transport, struct ref *refs)
struct ref **heads = NULL;
struct ref *rm;
if (!transport->vtable->fetch_without_list)
/*
* Some transports (e.g. the built-in bundle transport and the
* transport helper interface) do not work when fetching is
* done immediately after transport creation. List the remote
* refs anyway (if not already listed) as a workaround.
*/
transport_get_remote_refs(transport, NULL);
for (rm = refs; rm; rm = rm->next) {
nr_refs++;
if (rm->peer_ref &&