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:
parent
6448182a83
commit
35919bf1ab
18
transport.c
18
transport.c
@ -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;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user