X-Git-Url: https://git.verplant.org/?a=blobdiff_plain;f=clone-pack.c;h=2aa522089e94f9c2e3b8887efb769f654a34ebde;hb=66e631def8ad6a15eed57bcbde4157e0964ad8fc;hp=b9b8437dd51d0059f056d42300f773ac8324448f;hpb=b2cb94254be7bf8b44c851897dd29a00ce654e3c;p=git.git diff --git a/clone-pack.c b/clone-pack.c index b9b8437d..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 { @@ -12,7 +13,7 @@ struct ref { char name[0]; }; -struct ref *get_remote_refs(int fd, int nr_match, char **match) +static struct ref *get_remote_refs(int fd, int nr_match, char **match) { struct ref *ref_list = NULL, **next_ref = &ref_list; @@ -29,7 +30,7 @@ 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;