aboutsummaryrefslogtreecommitdiff
path: root/send-pack.c
diff options
context:
space:
mode:
Diffstat (limited to 'send-pack.c')
-rw-r--r--send-pack.c16
1 files changed, 11 insertions, 5 deletions
diff --git a/send-pack.c b/send-pack.c
index 6756264b2..33e69dbe1 100644
--- a/send-pack.c
+++ b/send-pack.c
@@ -6,9 +6,9 @@
#include "exec_cmd.h"
static const char send_pack_usage[] =
-"git-send-pack [--all] [--exec=git-receive-pack] <remote> [<head>...]\n"
-" --all and explicit <head> specification are mutually exclusive.";
-static const char *exec = "git-receive-pack";
+"git-send-pack [--all] [--force] [--receive-pack=<git-receive-pack>] [--verbose] [--thin] [<host>:]<directory> [<ref>...]\n"
+" --all and explicit <ref> specification are mutually exclusive.";
+static const char *receivepack = "git-receive-pack";
static int verbose;
static int send_all;
static int force_update;
@@ -25,6 +25,8 @@ static int pack_objects(int fd, struct ref *refs)
if (pipe(pipe_fd) < 0)
return error("send-pack: pipe failed");
pid = fork();
+ if (pid < 0)
+ return error("send-pack: unable to fork git-pack-objects");
if (!pid) {
/*
* The child becomes pack-objects --revs; we feed
@@ -377,8 +379,12 @@ int main(int argc, char **argv)
char *arg = *argv;
if (*arg == '-') {
+ if (!strncmp(arg, "--receive-pack=", 15)) {
+ receivepack = arg + 15;
+ continue;
+ }
if (!strncmp(arg, "--exec=", 7)) {
- exec = arg + 7;
+ receivepack = arg + 7;
continue;
}
if (!strcmp(arg, "--all")) {
@@ -413,7 +419,7 @@ int main(int argc, char **argv)
usage(send_pack_usage);
verify_remote_names(nr_heads, heads);
- pid = git_connect(fd, dest, exec);
+ pid = git_connect(fd, dest, receivepack);
if (pid < 0)
return 1;
ret = send_pack(fd[0], fd[1], nr_heads, heads);