Allow curl helper to work without a local repository
authorDaniel Barkalow <barkalow@iabervon.org>
Wed, 4 Nov 2009 02:52:35 +0000 (21:52 -0500)
committerJunio C Hamano <gitster@pobox.com>
Wed, 4 Nov 2009 05:41:01 +0000 (21:41 -0800)
It's okay to use the curl helper without a local repository, so long
as you don't use "fetch". There aren't any git programs that would try
to use it, and it doesn't make sense to try it (since there's nowhere
to write the results), but we may as well be clear.

Signed-off-by: Daniel Barkalow <barkalow@iabervon.org>
Signed-off-by: Junio C Hamano <gitster@pobox.com>
remote-curl.c

index 2faf1c634415d139f15c4829937e0460be31dc1d..ebdab3603ec767b42ce04e0de2c3deeb516f2525 100644 (file)
@@ -82,9 +82,10 @@ int main(int argc, const char **argv)
        struct strbuf buf = STRBUF_INIT;
        const char *url;
        struct walker *walker = NULL;
+       int nongit;
 
        git_extract_argv0_path(argv[0]);
-       setup_git_directory();
+       setup_git_directory_gently(&nongit);
        if (argc < 2) {
                fprintf(stderr, "Remote needed\n");
                return 1;
@@ -103,6 +104,8 @@ int main(int argc, const char **argv)
                        break;
                if (!prefixcmp(buf.buf, "fetch ")) {
                        char *obj = buf.buf + strlen("fetch ");
+                       if (nongit)
+                               die("Fetch attempted without a local repo");
                        if (!walker)
                                walker = get_http_walker(url, remote);
                        walker->get_all = 1;