sha1_file.c: cleanup hdr usage
[gitweb.git] / send-pack.c
index 6756264b293e18467a59dc0222ee82e586cda76f..512b660e99f26e391df34d48e1aebc9c6c3250e7 100644 (file)
@@ -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, "--exec=", 7)) {
-                               exec = arg + 7;
+                       if (!prefixcmp(arg, "--receive-pack=")) {
+                               receivepack = arg + 15;
+                               continue;
+                       }
+                       if (!prefixcmp(arg, "--exec=")) {
+                               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);