path: root/upload-pack.c
diff options
authorJohannes Schindelin <>2007-02-23 19:03:10 (GMT)
committerJunio C Hamano <>2007-02-24 08:26:18 (GMT)
commitb0e908977ebe43b49badad7fe34bf259dd5d263b (patch)
tree7b4e75862793dd292a7ad8323d3fa51be0bafb46 /upload-pack.c
parent83a5ad61268bbfea7e0d3180528366690f951554 (diff)
Fixup no-progress for fetch & clone
The intent of the commit 'fetch & clone: do not output progress when not on a tty' was to make fetching and cloning less chatty when output was not redirected (such as in a cron job). However, there was a serious thinko in that commit. It assumed that the client _and_ the server got this update at the same time. But this is obviously not the case, and therefore upload-pack died on seeing the option "--no-progress". This patch fixes that issue by making it a protocol option. So, until your server is updated, you still see the progress, but once the server has this patch, it will be quiet. A minor issue was also fixed: when cloning, the checkout did not heed no_progress. Signed-off-by: Johannes Schindelin <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'upload-pack.c')
1 files changed, 4 insertions, 6 deletions
diff --git a/upload-pack.c b/upload-pack.c
index d1be07f..d9907ca 100644
--- a/upload-pack.c
+++ b/upload-pack.c
@@ -10,7 +10,7 @@
#include "revision.h"
#include "list-objects.h"
-static const char upload_pack_usage[] = "git-upload-pack [--strict] [--timeout=nn] [--no-progress] <dir>";
+static const char upload_pack_usage[] = "git-upload-pack [--strict] [--timeout=nn] <dir>";
/* bits #0..7 in revision.h, #8..10 in commit.c */
#define THEY_HAVE (1u << 11)
@@ -547,6 +547,8 @@ static void receive_needs(void)
use_sideband = LARGE_PACKET_MAX;
else if (strstr(line+45, "side-band"))
use_sideband = DEFAULT_PACKET_MAX;
+ if (strstr(line+45, "no-progress"))
+ no_progress = 1;
/* We have sent all our refs already, and the other end
* should have chosen out of them; otherwise they are
@@ -615,7 +617,7 @@ static void receive_needs(void)
static int send_ref(const char *refname, const unsigned char *sha1, int flag, void *cb_data)
static const char *capabilities = "multi_ack thin-pack side-band"
- " side-band-64k ofs-delta shallow";
+ " side-band-64k ofs-delta shallow no-progress";
struct object *o = parse_object(sha1);
if (!o)
@@ -670,10 +672,6 @@ int main(int argc, char **argv)
timeout = atoi(arg+10);
- if (!strcmp(arg, "--no-progress")) {
- no_progress = 1;
- continue;
- }
if (!strcmp(arg, "--")) {