From 6c6d5d0776b5eb60dc206691fc1fde755e94da20 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Nguy=E1=BB=85n=20Th=C3=A1i=20Ng=E1=BB=8Dc=20Duy?= Date: Sat, 10 Nov 2018 06:48:55 +0100 Subject: [PATCH] transport.c: remove implicit dependency on the_index MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit note, there's still another hidden dependency related to this: even though we pass a repo to transport_push() we still use is_bare_repository() which pretty much assumes the_repository (and some other global state). Signed-off-by: Nguyễn Thái Ngọc Duy Signed-off-by: Junio C Hamano --- builtin/push.c | 3 ++- transport.c | 7 ++++--- transport.h | 3 ++- 3 files changed, 8 insertions(+), 5 deletions(-) diff --git a/builtin/push.c b/builtin/push.c index d09a42062c..efb3e38a8d 100644 --- a/builtin/push.c +++ b/builtin/push.c @@ -355,7 +355,8 @@ static int push_with_options(struct transport *transport, struct refspec *rs, if (verbosity > 0) fprintf(stderr, _("Pushing to %s\n"), transport->url); - err = transport_push(transport, rs, flags, &reject_reasons); + err = transport_push(the_repository, transport, + rs, flags, &reject_reasons); if (err != 0) { fprintf(stderr, "%s", push_get_color(PUSH_COLOR_ERROR)); error(_("failed to push some refs to '%s'"), transport->url); diff --git a/transport.c b/transport.c index 5a74b609ff..71f663743f 100644 --- a/transport.c +++ b/transport.c @@ -1105,7 +1105,8 @@ static int run_pre_push_hook(struct transport *transport, return ret; } -int transport_push(struct transport *transport, +int transport_push(struct repository *r, + struct transport *transport, struct refspec *rs, int flags, unsigned int *reject_reasons) { @@ -1172,7 +1173,7 @@ int transport_push(struct transport *transport, oid_array_append(&commits, &ref->new_oid); - if (!push_unpushed_submodules(the_repository, + if (!push_unpushed_submodules(r, &commits, transport->remote, rs, @@ -1197,7 +1198,7 @@ int transport_push(struct transport *transport, oid_array_append(&commits, &ref->new_oid); - if (find_unpushed_submodules(the_repository, + if (find_unpushed_submodules(r, &commits, transport->remote->name, &needs_pushing)) { diff --git a/transport.h b/transport.h index 9baeca2d7a..f2ee7c4f49 100644 --- a/transport.h +++ b/transport.h @@ -223,7 +223,8 @@ void transport_set_verbosity(struct transport *transport, int verbosity, #define REJECT_FETCH_FIRST 0x08 #define REJECT_NEEDS_FORCE 0x10 -int transport_push(struct transport *connection, +int transport_push(struct repository *repo, + struct transport *connection, struct refspec *rs, int flags, unsigned int * reject_reasons);