On Dienstag, 16. Juni 2009, Nicolas Pitre wrote: > 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@xxxxxxxx> --- 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 -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html