]> asedeno.scripts.mit.edu Git - git.git/blobdiff - builtin-http-fetch.c
Merge branch 'ar/maint-mksnpath' into maint
[git.git] / builtin-http-fetch.c
index 4a50dbd95ba65b471a0e26f0b46bb8b60fda1ecb..03f34d767ddfc3c7bc9b18d28ec7350d47564679 100644 (file)
@@ -9,6 +9,7 @@ int cmd_http_fetch(int argc, const char **argv, const char *prefix)
        const char **write_ref = NULL;
        char **commit_id;
        const char *url;
+       char *rewritten_url = NULL;
        int arg = 1;
        int rc = 0;
        int get_tree = 0;
@@ -17,7 +18,7 @@ int cmd_http_fetch(int argc, const char **argv, const char *prefix)
        int get_verbosely = 0;
        int get_recover = 0;
 
-       git_config(git_default_config);
+       git_config(git_default_config, NULL);
 
        while (arg < argc && argv[arg][0] == '-') {
                if (argv[arg][1] == 't') {
@@ -41,7 +42,7 @@ int cmd_http_fetch(int argc, const char **argv, const char *prefix)
                arg++;
        }
        if (argc < arg + 2 - commits_on_stdin) {
-               usage("git-http-fetch [-c] [-t] [-a] [-v] [--recover] [-w ref] [--stdin] commit-id url");
+               usage("git http-fetch [-c] [-t] [-a] [-v] [--recover] [-w ref] [--stdin] commit-id url");
                return 1;
        }
        if (commits_on_stdin) {
@@ -51,8 +52,14 @@ int cmd_http_fetch(int argc, const char **argv, const char *prefix)
                commits = 1;
        }
        url = argv[arg];
+       if (url && url[strlen(url)-1] != '/') {
+               rewritten_url = malloc(strlen(url)+2);
+               strcpy(rewritten_url, url);
+               strcat(rewritten_url, "/");
+               url = rewritten_url;
+       }
 
-       walker = get_http_walker(url);
+       walker = get_http_walker(url, NULL);
        walker->get_tree = get_tree;
        walker->get_history = get_history;
        walker->get_all = get_all;
@@ -68,10 +75,12 @@ int cmd_http_fetch(int argc, const char **argv, const char *prefix)
                fprintf(stderr,
 "Some loose object were found to be corrupt, but they might be just\n"
 "a false '404 Not Found' error message sent with incorrect HTTP\n"
-"status code.  Suggest running git-fsck.\n");
+"status code.  Suggest running 'git fsck'.\n");
        }
 
        walker_free(walker);
 
+       free(rewritten_url);
+
        return rc;
 }