transport: unify return values and exit point from transport_push()

It seems there is no reason to return 1 instead of -1 when push_refs()
is not set in transport vtable. Let's unify the error return values and
use the done label as a single exit point from transport_push().

Suggested-by: Ævar Arnfjörð Bjarmason <avarab@gmail.com>
Signed-off-by: Frantisek Hrbata <frantisek@hrbata.com>
Reviewed-by: Josh Steadmon <steadmon@google.com>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
Frantisek Hrbata 2022-05-20 14:49:51 +02:00 committed by Junio C Hamano
parent 6448182a83
commit 35919bf1ab

View File

@ -1276,29 +1276,30 @@ int transport_push(struct repository *r,
struct refspec *rs, int flags, struct refspec *rs, int flags,
unsigned int *reject_reasons) unsigned int *reject_reasons)
{ {
struct ref *remote_refs; struct ref *remote_refs = NULL;
struct ref *local_refs; struct ref *local_refs = NULL;
int match_flags = MATCH_REFS_NONE; int match_flags = MATCH_REFS_NONE;
int verbose = (transport->verbose > 0); int verbose = (transport->verbose > 0);
int quiet = (transport->verbose < 0); int quiet = (transport->verbose < 0);
int porcelain = flags & TRANSPORT_PUSH_PORCELAIN; int porcelain = flags & TRANSPORT_PUSH_PORCELAIN;
int pretend = flags & TRANSPORT_PUSH_DRY_RUN; int pretend = flags & TRANSPORT_PUSH_DRY_RUN;
int push_ret, ret, err; int push_ret, err;
int ret = -1;
struct transport_ls_refs_options transport_options = struct transport_ls_refs_options transport_options =
TRANSPORT_LS_REFS_OPTIONS_INIT; TRANSPORT_LS_REFS_OPTIONS_INIT;
*reject_reasons = 0; *reject_reasons = 0;
if (transport_color_config() < 0) if (transport_color_config() < 0)
return -1; goto done;
if (!transport->vtable->push_refs) if (!transport->vtable->push_refs)
return 1; goto done;
local_refs = get_local_heads(); local_refs = get_local_heads();
if (check_push_refs(local_refs, rs) < 0) if (check_push_refs(local_refs, rs) < 0)
return -1; goto done;
refspec_ref_prefixes(rs, &transport_options.ref_prefixes); refspec_ref_prefixes(rs, &transport_options.ref_prefixes);
@ -1319,7 +1320,7 @@ int transport_push(struct repository *r,
match_flags |= MATCH_REFS_FOLLOW_TAGS; match_flags |= MATCH_REFS_FOLLOW_TAGS;
if (match_push_refs(local_refs, &remote_refs, rs, match_flags)) if (match_push_refs(local_refs, &remote_refs, rs, match_flags))
return -1; goto done;
if (transport->smart_options && if (transport->smart_options &&
transport->smart_options->cas && transport->smart_options->cas &&
@ -1333,7 +1334,7 @@ int transport_push(struct repository *r,
if (!(flags & TRANSPORT_PUSH_NO_HOOK)) if (!(flags & TRANSPORT_PUSH_NO_HOOK))
if (run_pre_push_hook(transport, remote_refs)) if (run_pre_push_hook(transport, remote_refs))
return -1; goto done;
if ((flags & (TRANSPORT_RECURSE_SUBMODULES_ON_DEMAND | if ((flags & (TRANSPORT_RECURSE_SUBMODULES_ON_DEMAND |
TRANSPORT_RECURSE_SUBMODULES_ONLY)) && TRANSPORT_RECURSE_SUBMODULES_ONLY)) &&
@ -1417,6 +1418,7 @@ int transport_push(struct repository *r,
else if (!quiet && !ret && !transport_refs_pushed(remote_refs)) else if (!quiet && !ret && !transport_refs_pushed(remote_refs))
fprintf(stderr, "Everything up-to-date\n"); fprintf(stderr, "Everything up-to-date\n");
done:
return ret; return ret;
} }