X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=clone-pack.c;h=2aa522089e94f9c2e3b8887efb769f654a34ebde;hb=2c38fe4c574812601c8338d8db1ba0d2528b5ae4;hp=31152c7f9ad5fa1bab3a2e881682a55ab180f0b6;hpb=dd7ba8b4949535c24e604a37709db0e3be9ccbbc;p=git.git diff --git a/clone-pack.c b/clone-pack.c index 31152c7f..2aa52208 100644 --- a/clone-pack.c +++ b/clone-pack.c @@ -3,7 +3,8 @@ #include "pkt-line.h" #include -static const char clone_pack_usage[] = "git-clone-pack [host:]directory [heads]*"; +static int quiet; +static const char clone_pack_usage[] = "git-clone-pack [-q] [--exec=] [:] []*"; static const char *exec = "git-upload-pack"; struct ref { @@ -29,7 +30,7 @@ static struct ref *get_remote_refs(int fd, int nr_match, char **match) if (line[len-1] == '\n') line[--len] = 0; if (len < 42 || get_sha1_hex(line, sha1)) - die("git-fetch-pack: protocol error - expected ref descriptor, got '%s¤'", line); + die("git-clone-pack: protocol error - expected ref descriptor, got '%s'", line); refname = line+41; len = len-40; if (nr_match && !path_match(refname, nr_match, match)) @@ -151,10 +152,11 @@ static int clone_pack(int fd[2], int nr_match, char **match) if (pid < 0) die("git-clone-pack: unable to fork off git-unpack-objects"); if (!pid) { - close(fd[1]); dup2(fd[0], 0); close(fd[0]); - execlp("git-unpack-objects", "git-unpack-objects", NULL); + close(fd[1]); + execlp("git-unpack-objects", "git-unpack-objects", + quiet ? "-q" : NULL, NULL); die("git-unpack-objects exec failed"); } close(fd[0]); @@ -190,7 +192,14 @@ int main(int argc, char **argv) char *arg = argv[i]; if (*arg == '-') { - /* Arguments go here */ + if (!strcmp("-q", arg)) { + quiet = 1; + continue; + } + if (!strncmp("--exec=", arg, 7)) { + exec = arg + 7; + continue; + } usage(clone_pack_usage); } dest = arg;