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

[PATCH 1/4] check stderr with isatty() instead of stdout when deciding to show progress

From
Tay Ray Chuan <rctay89@gmail.com>
Date
Dec 25, 2009, 17:12 UTC
Message-ID
<1261761126-5784-2-git-send-email-rctay89@gmail.com>
In-Reply-To
<1261761126-5784-1-git-send-email-rctay89@gmail.com>

Make transport code (viz. transport.c::fetch_refs_via_pack() and transport-helper.c::standard_options()) that decides to show progress check if stderr is a terminal, instead of stdout. After all, progress reports (via the API in progress.[ch]) are sent to stderr.

Update the documentation for git-clone to say "standard error" as well.
Signed-off-by: Tay Ray Chuan <rctay89@gmail.com>
---
 Documentation/git-clone.txt |    2 +-
 transport-helper.c          |    2 +-
 transport.c                 |    2 +-
 transport.h                 |    2 +-
 4 files changed, 4 insertions(+), 4 deletions(-)
diff --git a/Documentation/git-clone.txt b/Documentation/git-clone.txt
index 7ccd742..f298fdd 100644
--- a/Documentation/git-clone.txt
+++ b/Documentation/git-clone.txt
@@ -101,7 +101,7 @@ objects from the source repository into a pack in the cloned repository.
 
 --verbose::
 -v::
-	Display the progress bar, even in case the standard output is not
+	Display the progress bar, even in case the standard error is not
 	a terminal.
 
 --no-checkout::
diff --git a/transport-helper.c b/transport-helper.c
index 11f3d7e..b886985 100644
--- a/transport-helper.c
+++ b/transport-helper.c
@@ -169,7 +169,7 @@ static void standard_options(struct transport *t)
 	char buf[16];
 	int n;
 	int v = t->verbose;
-	int no_progress = v < 0 || (!t->progress && !isatty(1));
+	int no_progress = v < 0 || (!t->progress && !isatty(2));
 
 	set_helper_option(t, "progress", !no_progress ? "true" : "false");
 
diff --git a/transport.c b/transport.c
index 3eea836..24c7f1d 100644
--- a/transport.c
+++ b/transport.c
@@ -476,7 +476,7 @@ static int fetch_refs_via_pack(struct transport *transport,
 	args.include_tag = data->followtags;
 	args.verbose = (transport->verbose > 0);
 	args.quiet = (transport->verbose < 0);
-	args.no_progress = args.quiet || (!transport->progress && !isatty(1));
+	args.no_progress = args.quiet || (!transport->progress && !isatty(2));
 	args.depth = data->depth;
 
 	for (i = 0; i < nr_heads; i++)
diff --git a/transport.h b/transport.h
index 9e74406..68fda6a 100644
--- a/transport.h
+++ b/transport.h
@@ -63,7 +63,7 @@ struct transport {
 	int (*disconnect)(struct transport *connection);
 	char *pack_lockfile;
 	signed verbose : 3;
-	/* Force progress even if the output is not a tty */
+	/* Force progress even if stderr is not a tty */
 	unsigned progress : 1;
 };
 
-- 
1.6.6.278.g3f5f
Previous: Tay Ray ChuanNext: Tay Ray Chuan
Message 3 of 12 in “Add progress options”
  1. Add progress optionsBrent Goodrick, Feb 9, 2009
  2. 0/4 clone: use --progress to mean -vTay Ray Chuan, Dec 25, 2009
  3. 1/4 check stderr with isatty() instead of stdout when deciding to show progressTay Ray Chuan, Dec 25, 2009
  4. 2/4 git-clone.txt: reword description of progress behaviourTay Ray Chuan, Dec 25, 2009
  5. 3/4 clone: set transport->verbose when -v/--verbose is usedTay Ray Chuan, Dec 25, 2009
  6. 4/4 clone: use --progress to force progress reportingTay Ray Chuan, Dec 25, 2009
  7. Miklos VajnaDec 27, 2009
  8. Tay Ray ChuanDec 27, 2009
  9. Johannes SchindelinDec 26, 2009
  10. Tay Ray ChuanDec 27, 2009
  11. Junio C HamanoDec 29, 2009
  12. Tay Ray ChuanDec 29, 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.