diff options
author | Junio C Hamano <junkio@cox.net> | 2006-02-20 00:38:39 -0800 |
---|---|---|
committer | Junio C Hamano <junkio@cox.net> | 2006-02-20 00:38:39 -0800 |
commit | b19696c2e7c3e753777189100b2ac09c9e04080b (patch) | |
tree | c18c87dee34aaf86294e126ba148b5f12a4fc2aa /fetch-pack.c | |
parent | a79a27636098be2b9652f59bd447ac074f741e26 (diff) | |
download | git-b19696c2e7c3e753777189100b2ac09c9e04080b.tar.gz git-b19696c2e7c3e753777189100b2ac09c9e04080b.tar.xz |
Use thin pack transfer in "git fetch".
Signed-off-by: Junio C Hamano <junkio@cox.net>
Diffstat (limited to 'fetch-pack.c')
-rw-r--r-- | fetch-pack.c | 15 |
1 files changed, 11 insertions, 4 deletions
diff --git a/fetch-pack.c b/fetch-pack.c index aa6f42ae1..09738fee9 100644 --- a/fetch-pack.c +++ b/fetch-pack.c @@ -8,7 +8,7 @@ static int keep_pack; static int quiet; static int verbose; static const char fetch_pack_usage[] = -"git-fetch-pack [-q] [-v] [-k] [--exec=upload-pack] [host:]directory <refs>..."; +"git-fetch-pack [-q] [-v] [-k] [--thin] [--exec=upload-pack] [host:]directory <refs>..."; static const char *exec = "git-upload-pack"; #define COMPLETE (1U << 0) @@ -18,7 +18,7 @@ static const char *exec = "git-upload-pack"; #define POPPED (1U << 4) static struct commit_list *rev_list = NULL; -static int non_common_revs = 0, multi_ack = 0; +static int non_common_revs = 0, multi_ack = 0, use_thin_pack = 0; static void rev_list_push(struct commit *commit, int mark) { @@ -156,8 +156,9 @@ static int find_common(int fd[2], unsigned char *result_sha1, continue; } - packet_write(fd[1], "want %s%s\n", sha1_to_hex(remote), - multi_ack ? " multi_ack" : ""); + packet_write(fd[1], "want %s%s%s\n", sha1_to_hex(remote), + (multi_ack ? " multi_ack" : ""), + (use_thin_pack ? " thin-pack" : "")); fetching++; } packet_flush(fd[1]); @@ -421,6 +422,10 @@ int main(int argc, char **argv) keep_pack = 1; continue; } + if (!strcmp("--thin", arg)) { + use_thin_pack = 1; + continue; + } if (!strcmp("-v", arg)) { verbose = 1; continue; @@ -434,6 +439,8 @@ int main(int argc, char **argv) } if (!dest) usage(fetch_pack_usage); + if (keep_pack) + use_thin_pack = 0; pid = git_connect(fd, dest, exec); if (pid < 0) return 1; |