transport: don't show push status if --quiet is given
When --quiet is given, the user generally only wants to see errors. So let's suppress printing the ref status table unless there is an error, in which case we print out the whole table. Signed-off-by: Jeff King <peff@peff.net> Signed-off-by: Junio C Hamano <gitster@pobox.com>
This commit is contained in:
parent
120703292b
commit
481c7a6db9
20
transport.c
20
transport.c
@ -681,6 +681,21 @@ static int fetch_refs_via_pack(struct transport *transport,
|
|||||||
return (refs ? 0 : -1);
|
return (refs ? 0 : -1);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
static int push_had_errors(struct ref *ref)
|
||||||
|
{
|
||||||
|
for (; ref; ref = ref->next) {
|
||||||
|
switch (ref->status) {
|
||||||
|
case REF_STATUS_NONE:
|
||||||
|
case REF_STATUS_UPTODATE:
|
||||||
|
case REF_STATUS_OK:
|
||||||
|
break;
|
||||||
|
default:
|
||||||
|
return 1;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
static int refs_pushed(struct ref *ref)
|
static int refs_pushed(struct ref *ref)
|
||||||
{
|
{
|
||||||
for (; ref; ref = ref->next) {
|
for (; ref; ref = ref->next) {
|
||||||
@ -1010,6 +1025,7 @@ int transport_push(struct transport *transport,
|
|||||||
struct ref *local_refs = get_local_heads();
|
struct ref *local_refs = get_local_heads();
|
||||||
int match_flags = MATCH_REFS_NONE;
|
int match_flags = MATCH_REFS_NONE;
|
||||||
int verbose = flags & TRANSPORT_PUSH_VERBOSE;
|
int verbose = flags & TRANSPORT_PUSH_VERBOSE;
|
||||||
|
int quiet = flags & TRANSPORT_PUSH_QUIET;
|
||||||
int porcelain = flags & TRANSPORT_PUSH_PORCELAIN;
|
int porcelain = flags & TRANSPORT_PUSH_PORCELAIN;
|
||||||
int ret;
|
int ret;
|
||||||
|
|
||||||
@ -1025,7 +1041,9 @@ int transport_push(struct transport *transport,
|
|||||||
|
|
||||||
ret = transport->push_refs(transport, remote_refs, flags);
|
ret = transport->push_refs(transport, remote_refs, flags);
|
||||||
|
|
||||||
print_push_status(transport->url, remote_refs, verbose | porcelain, porcelain);
|
if (!quiet || push_had_errors(remote_refs))
|
||||||
|
print_push_status(transport->url, remote_refs,
|
||||||
|
verbose | porcelain, porcelain);
|
||||||
|
|
||||||
if (!(flags & TRANSPORT_PUSH_DRY_RUN)) {
|
if (!(flags & TRANSPORT_PUSH_DRY_RUN)) {
|
||||||
struct ref *ref;
|
struct ref *ref;
|
||||||
|
Loading…
Reference in New Issue
Block a user