summary | shortlog | log | commit | commitdiff | tree
raw | patch | inline | side by side (parent: 83a5ad6)
raw | patch | inline | side by side (parent: 83a5ad6)
author | Johannes Schindelin <Johannes.Schindelin@gmx.de> | |
Fri, 23 Feb 2007 19:03:10 +0000 (20:03 +0100) | ||
committer | Junio C Hamano <junkio@cox.net> | |
Sat, 24 Feb 2007 08:26:18 +0000 (00:26 -0800) |
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 <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
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 <johannes.schindelin@gmx.de>
Signed-off-by: Junio C Hamano <junkio@cox.net>
Documentation/git-upload-pack.txt | patch | blob | history | |
fetch-pack.c | patch | blob | history | |
git-clone.sh | patch | blob | history | |
upload-pack.c | patch | blob | history |
index c75c86ea79ed73e7a9e451f3d003462d253385d6..fd6519299a9a089a1ffec544f55ba40775aedf9b 100644 (file)
SYNOPSIS
--------
-'git-upload-pack' [--strict] [--timeout=<n>] [--no-progress] <directory>
+'git-upload-pack' [--strict] [--timeout=<n>] <directory>
DESCRIPTION
-----------
\--timeout=<n>::
Interrupt transfer after <n> seconds of inactivity.
-\--no-progress::
- Do not show the progress.
-
<directory>::
The repository to sync from.
diff --git a/fetch-pack.c b/fetch-pack.c
index fc6b4e06b43722c770eac5e911e48a45cf51ce96..84285462714a3eee62915dd677fc06a468526bbb 100644 (file)
--- a/fetch-pack.c
+++ b/fetch-pack.c
}
if (!fetching)
- packet_write(fd[1], "want %s%s%s%s%s%s\n",
+ packet_write(fd[1], "want %s%s%s%s%s%s%s\n",
sha1_to_hex(remote),
(multi_ack ? " multi_ack" : ""),
(use_sideband == 2 ? " side-band-64k" : ""),
(use_sideband == 1 ? " side-band" : ""),
(use_thin_pack ? " thin-pack" : ""),
+ (no_progress ? " no-progress" : ""),
" ofs-delta");
else
packet_write(fd[1], "want %s\n", sha1_to_hex(remote));
}
if (!dest)
usage(fetch_pack_usage);
- if (no_progress) {
- char buf[256];
- snprintf(buf, sizeof(buf), "%s --no-progress", uploadpack);
- pid = git_connect(fd, dest, buf);
- } else
- pid = git_connect(fd, dest, uploadpack);
+ pid = git_connect(fd, dest, uploadpack);
if (pid < 0)
return 1;
if (heads && nr_heads)
diff --git a/git-clone.sh b/git-clone.sh
index 86890ea1f4b0813e9aa7ec45e31659b35defcf9c..de51983584bb0fd015ed75704b72bec8fdb55430 100755 (executable)
--- a/git-clone.sh
+++ b/git-clone.sh
case "$no_checkout" in
'')
- test "z$quiet" = z && v=-v || v=
+ test "z$quiet" = z -a "z$no_progress" = z && v=-v || v=
git-read-tree -m -u $v HEAD HEAD
esac
fi
diff --git a/upload-pack.c b/upload-pack.c
index d1be07fb9efccb8244df1c130a6401a02c0a2ebf..d9907cac9596beda62ecbf7d1d997d76e96def9a 100644 (file)
--- a/upload-pack.c
+++ b/upload-pack.c
#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)
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
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)
timeout = atoi(arg+10);
continue;
}
- if (!strcmp(arg, "--no-progress")) {
- no_progress = 1;
- continue;
- }
if (!strcmp(arg, "--")) {
i++;
break;