daemon: add upload-tar service.
authorJunio C Hamano <junkio@cox.net>
Mon, 21 Aug 2006 02:03:50 +0000 (19:03 -0700)
committerJunio C Hamano <junkio@cox.net>
Mon, 28 Aug 2006 06:32:37 +0000 (23:32 -0700)
This allows clients to ask for tarballs with:

git tar-tree --remote=git://server/repo refname

By default, the upload-tar service is not enabled.  To enable
it server-wide, the server can be started with:

git-daemon --enable=upload-tar

This service is by default overridable per repostiory, so
alternatively, a repository can define "daemon.uploadtar = true"
to enable it.

Signed-off-by: Junio C Hamano <junkio@cox.net>
daemon.c

index e430cfbc8d0f4daccaae19fe44c9d699db6412e8..a4a08f39d513cc71e68c0c1d20eab75d27a5a86f 100644 (file)
--- a/daemon.c
+++ b/daemon.c
@@ -324,8 +324,15 @@ static int upload_pack(void)
        return -1;
 }
 
+static int upload_tar(void)
+{
+       execl_git_cmd("upload-tar", ".", NULL);
+       return -1;
+}
+
 static struct daemon_service daemon_service[] = {
        { "upload-pack", "uploadpack", upload_pack, 1, 1 },
+       { "upload-tar", "uploadtar", upload_tar, 0, 1 },
 };
 
 static void enable_service(const char *name, int ena) {
@@ -896,12 +903,12 @@ int main(int argc, char **argv)
                        enable_service(arg + 10, 0);
                        continue;
                }
-               if (!strncmp(arg, "--enable-override=", 18)) {
-                       make_service_overridable(arg + 18, 1);
+               if (!strncmp(arg, "--allow-override=", 17)) {
+                       make_service_overridable(arg + 17, 1);
                        continue;
                }
-               if (!strncmp(arg, "--disable-override=", 19)) {
-                       make_service_overridable(arg + 19, 0);
+               if (!strncmp(arg, "--forbid-override=", 18)) {
+                       make_service_overridable(arg + 18, 0);
                        continue;
                }
                if (!strcmp(arg, "--")) {