@matheusbsbs / matheus-bagliano / commits / 616f86d713
Fork 0

Let 'git http-fetch -h' show usage outside any git repository

Delay search for a git directory until option parsing has finished. None of the functions used in option parsing look for or read any files other than stdin, so this is safe. Signed-off-by: Jonathan Nieder <jrnieder@gmail.com> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Jonathan Nieder committed Nov 9, 2009 at 09:04 UTC 616f86d71325da1ce692f8e878fe066758f88554
1 file changed +12 -6
http-fetch.c
+12 -6
@@ -2,6 +2,9 @@
2 #include "exec_cmd.h"
3 #include "walker.h"
4
5 +static const char http_fetch_usage[] = "git http-fetch "
6 +"[-c] [-t] [-a] [-v] [--recover] [-w ref] [--stdin] commit-id url";
7 +
8 int main(int argc, const char **argv)
9 {
10 const char *prefix;
@@ -21,8 +24,6 @@ int main(int argc, const char **argv)
24 int get_recover = 0;
25
26 git_extract_argv0_path(argv[0]);
24 - prefix = setup_git_directory();
25 - git_config(git_default_config, NULL);
27
28 while (arg < argc && argv[arg][0] == '-') {
29 if (argv[arg][1] == 't') {
@@ -38,6 +39,8 @@ int main(int argc, const char **argv)
39 } else if (argv[arg][1] == 'w') {
40 write_ref = &argv[arg + 1];
41 arg++;
42 + } else if (argv[arg][1] == 'h') {
43 + usage(http_fetch_usage);
44 } else if (!strcmp(argv[arg], "--recover")) {
45 get_recover = 1;
46 } else if (!strcmp(argv[arg], "--stdin")) {
@@ -45,10 +48,8 @@ int main(int argc, const char **argv)
48 }
49 arg++;
50 }
48 - if (argc < arg + 2 - commits_on_stdin) {
49 - usage("git http-fetch [-c] [-t] [-a] [-v] [--recover] [-w ref] [--stdin] commit-id url");
50 - return 1;
51 - }
51 + if (argc != arg + 2 - commits_on_stdin)
52 + usage(http_fetch_usage);
53 if (commits_on_stdin) {
54 commits = walker_targets_stdin(&commit_id, &write_ref);
55 } else {
@@ -56,6 +57,11 @@ int main(int argc, const char **argv)
57 commits = 1;
58 }
59 url = argv[arg];
60 +
61 + prefix = setup_git_directory();
62 +
63 + git_config(git_default_config, NULL);
64 +
65 if (url && url[strlen(url)-1] != '/') {
66 rewritten_url = xmalloc(strlen(url)+2);
67 strcpy(rewritten_url, url);