diff --relative: output paths as relative to the current subdirectory
[gitweb.git] / http-push.c
index c221dce62c16254c40c8c2a1f2d18dc3b55f20d9..b2b410df902f2a4f2bca634d82cf103d288c9042 100644 (file)
@@ -2169,6 +2169,7 @@ int main(int argc, char **argv)
        int i;
        int new_refs;
        struct ref *ref;
+       char *rewritten_url = NULL;
 
        setup_git_directory();
 
@@ -2236,6 +2237,14 @@ int main(int argc, char **argv)
 
        no_pragma_header = curl_slist_append(no_pragma_header, "Pragma:");
 
+       if (remote->url && remote->url[strlen(remote->url)-1] != '/') {
+               rewritten_url = malloc(strlen(remote->url)+2);
+               strcpy(rewritten_url, remote->url);
+               strcat(rewritten_url, "/");
+               remote->url = rewritten_url;
+               ++remote->path_len;
+       }
+
        /* Verify DAV compliance/lock support */
        if (!locking_available()) {
                rc = 1;
@@ -2416,6 +2425,8 @@ int main(int argc, char **argv)
        }
 
  cleanup:
+       if (rewritten_url)
+               free(rewritten_url);
        if (info_ref_lock)
                unlock_remote(info_ref_lock);
        free(remote);