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>
Frantisek Hrbata committed
May 20, 2022 at 14:49 UTC
35919bf1ab9d1451547d229f3a11a63c70f385df
1 file changed
+10
-8
transport.c
+10
-8
@@ -1276,29 +1276,30 @@ int transport_push(struct repository *r,
1276
struct refspec *rs, int flags,
1277
unsigned int *reject_reasons)
1278
{
1279
- struct ref *remote_refs;
1280
- struct ref *local_refs;
1279
+ struct ref *remote_refs = NULL;
1280
+ struct ref *local_refs = NULL;
1281
int match_flags = MATCH_REFS_NONE;
1282
int verbose = (transport->verbose > 0);
1283
int quiet = (transport->verbose < 0);
1284
int porcelain = flags & TRANSPORT_PUSH_PORCELAIN;
1285
int pretend = flags & TRANSPORT_PUSH_DRY_RUN;
1286
- int push_ret, ret, err;
1286
+ int push_ret, err;
1287
+ int ret = -1;
1288
struct transport_ls_refs_options transport_options =
1289
TRANSPORT_LS_REFS_OPTIONS_INIT;
1290
1291
*reject_reasons = 0;
1292
1293
if (transport_color_config() < 0)
1293
- return -1;
1294
+ goto done;
1295
1296
if (!transport->vtable->push_refs)
1296
- return 1;
1297
+ goto done;
1298
1299
local_refs = get_local_heads();
1300
1301
if (check_push_refs(local_refs, rs) < 0)
1301
- return -1;
1302
+ goto done;
1303
1304
refspec_ref_prefixes(rs, &transport_options.ref_prefixes);
1305
@@ -1319,7 +1320,7 @@ int transport_push(struct repository *r,
1320
match_flags |= MATCH_REFS_FOLLOW_TAGS;
1321
1322
if (match_push_refs(local_refs, &remote_refs, rs, match_flags))
1322
- return -1;
1323
+ goto done;
1324
1325
if (transport->smart_options &&
1326
transport->smart_options->cas &&
@@ -1333,7 +1334,7 @@ int transport_push(struct repository *r,
1334
1335
if (!(flags & TRANSPORT_PUSH_NO_HOOK))
1336
if (run_pre_push_hook(transport, remote_refs))
1336
- return -1;
1337
+ goto done;
1338
1339
if ((flags & (TRANSPORT_RECURSE_SUBMODULES_ON_DEMAND |
1340
TRANSPORT_RECURSE_SUBMODULES_ONLY)) &&
@@ -1417,6 +1418,7 @@ int transport_push(struct repository *r,
1418
else if (!quiet && !ret && !transport_refs_pushed(remote_refs))
1419
fprintf(stderr, "Everything up-to-date\n");
1420
1421
+done:
1422
return ret;
1423
}
1424