----------
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
-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.
-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
-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
-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.
+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/