#include "pkt-line.h"
#include <sys/wait.h>
-static const char fetch_pack_usage[] = "git-fetch-pack [host:]directory [heads]* < mycommitlist";
+static int quiet;
+static const char fetch_pack_usage[] = "git-fetch-pack [-q] [--exec=upload-pack] [host:]directory [heads]* < mycommitlist";
static const char *exec = "git-upload-pack";
static int find_common(int fd[2], unsigned char *result_sha1, unsigned char *remote)
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-fetch-pack: protocol error - expected ref descriptor, got '%s'", line);
refname = line+41;
if (nr_match && !path_match(refname, nr_match, match))
continue;
if (pid < 0)
die("git-fetch-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]);
char *arg = argv[i];
if (*arg == '-') {
- /* Arguments go here */
+ if (!strncmp("--exec=", arg, 7)) {
+ exec = arg + 7;
+ continue;
+ }
usage(fetch_pack_usage);
}
dest = arg;