From 548d3464dc446db58a8fc8f7a8cc6cfb2d683faa Mon Sep 17 00:00:00 2001 From: Jonathan Nieder Date: Mon, 9 Nov 2009 04:47:34 -0600 Subject: [PATCH] Show usage string for 'git http-push -h' http-push already knows how to dump usage if it is given no options, but it interprets '-h' as the URL to a remote repository: $ git http-push -h error: Cannot access URL -h/, return code 6 Dump usage instead. Humans wanting to pass the URL -h/ to curl for some reason can use 'git http-push -h/' explicitly. Scripts expecting to access an HTTP repository at URL '-h' will break, though. Also delay finding a git directory until after option parsing, so "http-push -h" can be used outside any git repository. Signed-off-by: Jonathan Nieder Acked-by: Tay Ray Chuan Signed-off-by: Junio C Hamano --- http-push.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/http-push.c b/http-push.c index 00e83dcec1..ad1a6c9096 100644 --- a/http-push.c +++ b/http-push.c @@ -1792,8 +1792,6 @@ int main(int argc, char **argv) git_extract_argv0_path(argv[0]); - setup_git_directory(); - repo = xcalloc(sizeof(*repo), 1); argv++; @@ -1827,6 +1825,8 @@ int main(int argc, char **argv) force_delete = 1; continue; } + if (!strcmp(arg, "-h")) + usage(http_push_usage); } if (!repo->url) { char *path = strstr(arg, "//"); @@ -1854,6 +1854,8 @@ int main(int argc, char **argv) if (delete_branch && nr_refspec != 1) die("You must specify only one branch name when deleting a remote branch"); + setup_git_directory(); + memset(remote_dir_exists, -1, 256); /*