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

[PATCH 2/3] silence human readable info messages going to stderr from git push --porcelain

From
Larry D'Anna <larry@elder-gods.org>
Date
Feb 5, 2010, 19:34 UTC
Message-ID
<1265398462-17316-2-git-send-email-larry@elder-gods.org>
In-Reply-To
<20100205150638.GB14116@coredump.intra.peff.net>
These messages are redundant information to a script that's calling git-push.
Signed-off-by: Larry D'Anna <larry@elder-gods.org>
---
 builtin-push.c |    4 ++--
 transport.c    |    6 +++---
 2 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/builtin-push.c b/builtin-push.c
index 0a27072..3fa4516 100644
--- a/builtin-push.c
+++ b/builtin-push.c
@@ -111,7 +111,7 @@ static int push_with_options(struct transport *transport, int flags)
 	if (thin)
 		transport_set_option(transport, TRANS_OPT_THIN, "yes");
 
-	if (flags & TRANSPORT_PUSH_VERBOSE)
+	if (flags & TRANSPORT_PUSH_VERBOSE && !(flags & TRANSPORT_PUSH_PORCELAIN))
 		fprintf(stderr, "Pushing to %s\n", transport->url);
 	err = transport_push(transport, refspec_nr, refspec, flags,
 			     &nonfastforward);
@@ -123,7 +123,7 @@ static int push_with_options(struct transport *transport, int flags)
 	if (!err)
 		return 0;
 
-	if (nonfastforward && advice_push_nonfastforward) {
+	if (!(flags & TRANSPORT_PUSH_PORCELAIN) && nonfastforward && advice_push_nonfastforward) {
 		fprintf(stderr, "To prevent you from losing history, non-fast-forward updates were rejected\n"
 				"Merge the remote changes before pushing again.  See the 'Note about\n"
 				"fast-forwards' section of 'git push --help' for details.\n");
diff --git a/transport.c b/transport.c
index 3846aac..f707c7b 100644
--- a/transport.c
+++ b/transport.c
@@ -674,7 +674,7 @@ static void print_ok_ref_status(struct ref *ref, int porcelain)
 
 static int print_one_push_status(struct ref *ref, const char *dest, int count, int porcelain)
 {
-	if (!count)
+	if (!count && !porcelain)
 		fprintf(stderr, "To %s\n", dest);
 
 	switch(ref->status) {
@@ -1067,10 +1067,10 @@ int transport_push(struct transport *transport,
 		if (!(flags & TRANSPORT_PUSH_DRY_RUN)) {
 			struct ref *ref;
 			for (ref = remote_refs; ref; ref = ref->next)
-				update_tracking_ref(transport->remote, ref, verbose);
+				update_tracking_ref(transport->remote, ref, verbose && !porcelain);
 		}
 
-		if (!quiet && !ret && !refs_pushed(remote_refs))
+		if (!quiet && !porcelain && !ret && !refs_pushed(remote_refs))
 			fprintf(stderr, "Everything up-to-date\n");
 		return ret;
 	}
-- 
1.7.0.rc1.33.g07cf0f.dirty
Previous: Larry D'AnnaNext: Junio C Hamano
Message 4 of 14 in “fix an error message in git-push so it goes to stderr”
  1. fix an error message in git-push so it goes to stderrLarry D'Anna, Feb 5, 2010
  2. Jeff KingFeb 5, 2010
  3. 1/3 fix an error message in git-push so it goes to stderrLarry D'Anna, Feb 5, 2010
  4. 2/3 silence human readable info messages going to stderr from git push --porcelainLarry D'Anna, Feb 5, 2010
  5. Junio C HamanoFeb 5, 2010
  6. Larry D'AnnaFeb 5, 2010
  7. 3/3 make git push --dry-run --porcelain exit with status 0 even if updates will be rejectedLarry D'Anna, Feb 5, 2010
  8. Jeff KingFeb 5, 2010
  9. Larry D'AnnaFeb 5, 2010
  10. Jeff KingFeb 5, 2010
  11. Larry D'AnnaFeb 5, 2010
  12. Jeff KingFeb 5, 2010
  13. Larry D'AnnaFeb 5, 2010
  14. Jeff KingFeb 5, 2010

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.