chiark / gitweb /
WIP entirely new git approach with config parsers
[userv-utils.git] / git-daemon / README
index d8e6a7a2f772d09b6121c4df079d16a2405d6ca4..116a6b35cec0d090efd1ae4dd2e4a765db6443a3 100644 (file)
@@ -33,31 +33,64 @@ Operation:
 ----------
 
 The userv-git-daemon is invoked by inetd which also tells it where to
 ----------
 
 The userv-git-daemon is invoked by inetd which also tells it where to
-find its global git-urlmap script.
+find its global git-urlmap config.
 
 The git-daemon parses the request from the network and uses the global
 
 The git-daemon parses the request from the network and uses the global
-git-urlmap script to determine which user will run the requested
-service. It invokes userv for the request to be performed. The most
+git-urlmap config to determine which user will run the requested
+service.  It invokes userv for the request to be performed.  The most
 common service is git-upload-pack, which is confusingly named: it
 uploads from the repository to the network; other services supported
 by git are git-upload-archive and git-receive-pack.
 
 common service is git-upload-pack, which is confusingly named: it
 uploads from the repository to the network; other services supported
 by git are git-upload-archive and git-receive-pack.
 
-The git-daemon will pass any service beginning git- to userv. The
+The git-daemon will pass any service beginning git- to userv.  The
 userv configuration determines which services may be requested. This
 package includes example git-upload-pack service configurations.
 
 The service configuration uses the git-service script to run the
 userv configuration determines which services may be requested. This
 package includes example git-upload-pack service configurations.
 
 The service configuration uses the git-service script to run the
-service. It passes the global and per-user git-urlmap scripts to the
+service.  It passes the global and per-user git-urlmap configs to the
 git-service script to determine where in the filesyetem the requested
 git-service script to determine where in the filesyetem the requested
-repository is. Later urlmap scripts override the choices made by
-earlier ones. See the sample git-urlmap script for details of the
-variables they can examine and set.
+repository is.  Later urlmap entries override the choices made by
+earlier ones.
 
 If a repository is located, the git-service script runs the requested
 service, which is simply the git program with the same name.
 
 
 
 If a repository is located, the git-service script runs the requested
 service, which is simply the git program with the same name.
 
 
+Configuration:
+--------------
+
+See "chiark-urlmap" for an example.
+
+Each line is one of:
+
+    single-user <vhost>[/<subpath>] <user> [<directory>]
+          matching requests will be handled by <user>
+          and unless overridden by <user> handled by
+          serving subdirectories of <directory>
+
+    multi-user <vhost>[/<subpath>] <directory>
+          matching requests are only those those next
+          path element starts with ~<user>.  The
+          request will be handled by <user> and unless
+          overridden by <user> will be handled by
+          serving subdirectories of <directory>
+          (<directory> must be a relative path)
+
+    repo-regexp <regexp>
+          For per-user service.  Subrepos must match this
+          regexp, which must contain a single matching
+          group which is the filesystem pathname inside
+          the <directory>.  The default is (Tcl syntax):
+    repo-regexp {^(\w[-+._0-9A-Za-z]*)$}
+
+    [no-]require-git-daemon-export-ok
+          For per-user service.  Default is no-.
+
+Last match, or last setting, wins.
+<subpath>s may start with ~
+
+
 ----------------------------------------------
 ----------------------------------------------
-This was written by Tony Finch <dot@dotat.at>
-You may do anything with it, at your own risk.
+This was written by Tony Finch <dot@dotat.at> and subsequently
+heavily modified by Ian Jackson <ijackson@chiark.greenend.org.uk>
 http://creativecommons.org/publicdomain/zero/1.0/
 http://creativecommons.org/publicdomain/zero/1.0/