git/list[1] front-page[2] threads[3] people[4] search[5] about
 

[PATCH 3/3] transport: don't show push status if --quiet is given

From
Jeff King <peff@peff.net>
Date
Aug 5, 2009, 20:23 UTC
Message-ID
<20090805202326.GC23226@coredump.intra.peff.net>
In-Reply-To
<20090805201937.GB9004@coredump.intra.peff.net>

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>
---
We could get fancier here and print out only the refs with errors if
quiet is given, but I went for simplicity.
 transport.c |   20 +++++++++++++++++++-
 1 files changed, 19 insertions(+), 1 deletions(-)
diff --git a/transport.c b/transport.c
index 2d0c491..afec5b7 100644
--- a/transport.c
+++ b/transport.c
@@ -667,6 +667,21 @@ static int fetch_refs_via_pack(struct transport *transport,
 	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)
 {
 	for (; ref; ref = ref->next) {
@@ -996,6 +1011,7 @@ int transport_push(struct transport *transport,
 		struct ref *local_refs = get_local_heads();
 		int match_flags = MATCH_REFS_NONE;
 		int verbose = flags & TRANSPORT_PUSH_VERBOSE;
+		int quiet = flags & TRANSPORT_PUSH_QUIET;
 		int porcelain = flags & TRANSPORT_PUSH_PORCELAIN;
 		int ret;
 
@@ -1011,7 +1027,9 @@ int transport_push(struct transport *transport,
 
 		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)) {
 			struct ref *ref;
-- 
1.6.4.218.g9f65c.dirty
Previous: Jeff KingNext: Sverre Rabbelier
Message 9 of 19 in “Making git push output quieter”
  1. Albert Astals CidAug 4, 2009
  2. Pau Garcia i QuilesAug 4, 2009
  3. Albert Astals CidAug 5, 2009
  4. Shawn O. PearceAug 5, 2009
  5. Nicolas PitreAug 5, 2009
  6. Jeff KingAug 5, 2009
  7. 1/3 push: add --quiet flagJeff King, Aug 5, 2009
  8. 2/3 transport: pass "quiet" flag to pack-objectsJeff King, Aug 5, 2009
  9. 3/3 transport: don't show push status if --quiet is givenJeff King, Aug 5, 2009
  10. Sverre RabbelierAug 5, 2009
  11. Avery PennarunAug 5, 2009
  12. Sverre RabbelierAug 5, 2009
  13. Junio C HamanoAug 5, 2009
  14. Jeff KingAug 5, 2009
  15. Junio C HamanoAug 5, 2009
  16. Jeff KingAug 5, 2009
  17. Sebastian PippingAug 31, 2009
  18. Jeff KingAug 31, 2009
  19. Sebastian PippingAug 31, 2009

Read the whole thread, see it on lore, or plain text.

$ cat FOOTERMessages come from the public archive at lore.kernel.org/git, fetched every hour. The front page is chosen and written each morning by an AI editor and can be wrong; the threads themselves are the record. About and API. For agents: an MCP server at https://gitlist.dev/mcp, and any thread, story or person page as Markdown by adding .md to its URL (or sending Accept: text/markdown). Details in /llms.txt.