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

Re: [PATCH] upload-pack: squelch progress indicator if client does not request sideband

From
Johannes Sixt <j6t@kdbg.org>
Date
Jun 16, 2009, 18:41 UTC
Message-ID
<200906162041.16608.j6t@kdbg.org>
In-Reply-To
<alpine.LFD.2.00.0906161354010.16467@xanadu.home>
On Dienstag, 16. Juni 2009, Nicolas Pitre wrote:
Show 13 quoted lines
> On Mon, 15 Jun 2009, Junio C Hamano wrote:
> > Stated differently, I think "not using sideband _and_ spawned via daemon"
> > would be an indication that "the client won't see the progress anyway
> > even if it were sent."  So the question becomes "will it be a small
> > enough change to detect if the upload-pack is driven by the daemon in the
> > codepath J6t added 'if (!use_sideband)' to, and if so shouldn't we do
> > so?"
>
> I don't think it is worth it at all.  The regression is purely cosmetic,
> and I suspect you'll have a really hard time finding someone still using
> those ancient git clients anyway.  Remember that such clients are unable
> to fetch with HTTP from repositories using version 2 of the pack index
> by default already.  That's why we created version 1.4.4.5.

Keep in mind that there could exist clients outside git.git that use modern pack-index or unpack-objects, but omit sideband support.

I propose this patch instead, although the assumption that the --timeout option is only used by git-daemon may not be quite right. In this case it may be better to add a new option that sets the new flag and that git-daemon has to use.

-- Hannes
Subject: [PATCH] upload-pack: squelch progress indicator if client cannot see it

upload-pack runs pack-objects, which generates progress indicator output on its stderr. If the client requests a sideband, this indicator is sent to the client; but if it did not, then the progress is written to upload-pack's own stderr.

If upload-pack is itself run from git-daemon (and if the client did not request a sideband) the progress indicator never reaches the client and it need not be generated in the first place. With this patch the progress indicator is suppressed in this situation.

Signed-off-by: Johannes Sixt <j6t@kdbg.org>
---
 upload-pack.c |    7 ++++++-
 1 files changed, 6 insertions(+), 1 deletions(-)
diff --git a/upload-pack.c b/upload-pack.c
index edc7861..841ebb5 100644
--- a/upload-pack.c
+++ b/upload-pack.c
@@ -28,7 +28,7 @@ static unsigned long oldest_have;
 
 static int multi_ack, nr_our_refs;
 static int use_thin_pack, use_ofs_delta, use_include_tag;
-static int no_progress;
+static int no_progress, daemon_mode;
 static struct object_array have_obj;
 static struct object_array want_obj;
 static unsigned int timeout;
@@ -521,6 +521,10 @@ static void receive_needs(void)
 	}
 	if (debug_fd)
 		write_in_full(debug_fd, "#E\n", 3);
+
+	if (!use_sideband && daemon_mode)
+		no_progress = 1;
+
 	if (depth == 0 && shallows.nr == 0)
 		return;
 	if (depth > 0) {
@@ -630,6 +634,7 @@ int main(int argc, char **argv)
 		}
 		if (!prefixcmp(arg, "--timeout=")) {
 			timeout = atoi(arg+10);
+			daemon_mode = 1;
 			continue;
 		}
 		if (!strcmp(arg, "--")) {
-- 
1.6.3.17.g1665f
Previous: Nicolas PitreNext: Junio C Hamano
Message 10 of 18 in “daemon: send stderr of service programs to the syslog”
  1. daemon: send stderr of service programs to the syslogJohannes Sixt, Jun 14, 2009
  2. Shawn O. PearceJun 15, 2009
  3. Nicolas PitreJun 15, 2009
  4. H. Peter AnvinJun 15, 2009
  5. upload-pack: squelch progress indicator if client does not request sidebandJohannes Sixt, Jun 15, 2009
  6. Junio C HamanoJun 15, 2009
  7. Nicolas PitreJun 16, 2009
  8. Junio C HamanoJun 16, 2009
  9. Nicolas PitreJun 16, 2009
  10. Johannes SixtJun 16, 2009
  11. Junio C HamanoJun 16, 2009
  12. Nicolas PitreJun 16, 2009
  13. Johannes SixtJun 15, 2009
  14. H. Peter AnvinJun 15, 2009
  15. Johannes SixtJun 16, 2009
  16. H. Peter AnvinJun 16, 2009
  17. Junio C HamanoJun 19, 2009
  18. Johannes SixtJun 20, 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.