|
|
|
@ -14,8 +14,12 @@
@@ -14,8 +14,12 @@
|
|
|
|
|
#include "sigchain.h" |
|
|
|
|
#include "version.h" |
|
|
|
|
#include "string-list.h" |
|
|
|
|
#include "parse-options.h" |
|
|
|
|
|
|
|
|
|
static const char upload_pack_usage[] = "git upload-pack [--strict] [--timeout=<n>] <dir>"; |
|
|
|
|
static const char * const upload_pack_usage[] = { |
|
|
|
|
N_("git upload-pack [<options>] <dir>"), |
|
|
|
|
NULL |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
/* Remember to update object flag allocation in object.h */ |
|
|
|
|
#define THEY_HAVE (1u << 11) |
|
|
|
@ -816,11 +820,21 @@ static int upload_pack_config(const char *var, const char *value, void *unused)
@@ -816,11 +820,21 @@ static int upload_pack_config(const char *var, const char *value, void *unused)
|
|
|
|
|
return parse_hide_refs_config(var, value, "uploadpack"); |
|
|
|
|
} |
|
|
|
|
|
|
|
|
|
int main(int argc, char **argv) |
|
|
|
|
int main(int argc, const char **argv) |
|
|
|
|
{ |
|
|
|
|
char *dir; |
|
|
|
|
int i; |
|
|
|
|
const char *dir; |
|
|
|
|
int strict = 0; |
|
|
|
|
struct option options[] = { |
|
|
|
|
OPT_BOOL(0, "stateless-rpc", &stateless_rpc, |
|
|
|
|
N_("quit after a single request/response exchange")), |
|
|
|
|
OPT_BOOL(0, "advertise-refs", &advertise_refs, |
|
|
|
|
N_("exit immediately after intial ref advertisement")), |
|
|
|
|
OPT_BOOL(0, "strict", &strict, |
|
|
|
|
N_("do not try <directory>/.git/ if <directory> is no Git directory")), |
|
|
|
|
OPT_INTEGER(0, "timeout", &timeout, |
|
|
|
|
N_("interrupt transfer after <n> seconds of inactivity")), |
|
|
|
|
OPT_END() |
|
|
|
|
}; |
|
|
|
|
|
|
|
|
|
git_setup_gettext(); |
|
|
|
|
|
|
|
|
@ -828,40 +842,17 @@ int main(int argc, char **argv)
@@ -828,40 +842,17 @@ int main(int argc, char **argv)
|
|
|
|
|
git_extract_argv0_path(argv[0]); |
|
|
|
|
check_replace_refs = 0; |
|
|
|
|
|
|
|
|
|
for (i = 1; i < argc; i++) { |
|
|
|
|
char *arg = argv[i]; |
|
|
|
|
argc = parse_options(argc, argv, NULL, options, upload_pack_usage, 0); |
|
|
|
|
|
|
|
|
|
if (arg[0] != '-') |
|
|
|
|
break; |
|
|
|
|
if (!strcmp(arg, "--advertise-refs")) { |
|
|
|
|
advertise_refs = 1; |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
if (!strcmp(arg, "--stateless-rpc")) { |
|
|
|
|
stateless_rpc = 1; |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
if (!strcmp(arg, "--strict")) { |
|
|
|
|
strict = 1; |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
if (starts_with(arg, "--timeout=")) { |
|
|
|
|
timeout = atoi(arg+10); |
|
|
|
|
daemon_mode = 1; |
|
|
|
|
continue; |
|
|
|
|
} |
|
|
|
|
if (!strcmp(arg, "--")) { |
|
|
|
|
i++; |
|
|
|
|
break; |
|
|
|
|
} |
|
|
|
|
} |
|
|
|
|
if (argc != 1) |
|
|
|
|
usage_with_options(upload_pack_usage, options); |
|
|
|
|
|
|
|
|
|
if (i != argc-1) |
|
|
|
|
usage(upload_pack_usage); |
|
|
|
|
if (timeout) |
|
|
|
|
daemon_mode = 1; |
|
|
|
|
|
|
|
|
|
setup_path(); |
|
|
|
|
|
|
|
|
|
dir = argv[i]; |
|
|
|
|
dir = argv[0]; |
|
|
|
|
|
|
|
|
|
if (!enter_repo(dir, strict)) |
|
|
|
|
die("'%s' does not appear to be a git repository", dir); |
|
|
|
|