timestamp_t: a new data type for timestamps
[gitweb.git] / Documentation / git-daemon.txt
index 7e5098a95e48bbe0a82630e2ca5d4cebec6c3112..3c91db7bed038f7ba28a4e7554cc6e63c5d91958 100644 (file)
@@ -3,7 +3,7 @@ git-daemon(1)
 
 NAME
 ----
-git-daemon - A really simple server for git repositories
+git-daemon - A really simple server for Git repositories
 
 SYNOPSIS
 --------
@@ -16,19 +16,21 @@ SYNOPSIS
             [--reuseaddr] [--detach] [--pid-file=<file>]
             [--enable=<service>] [--disable=<service>]
             [--allow-override=<service>] [--forbid-override=<service>]
-            [--access-hook=<path>]
-            [--inetd | [--listen=<host_or_ipaddr>] [--port=<n>] [--user=<user> [--group=<group>]]
+            [--access-hook=<path>] [--[no-]informative-errors]
+            [--inetd |
+             [--listen=<host_or_ipaddr>] [--port=<n>]
+             [--user=<user> [--group=<group>]]]
             [<directory>...]
 
 DESCRIPTION
 -----------
-A really simple TCP git daemon that normally listens on port "DEFAULT_GIT_PORT"
+A really simple TCP Git daemon that normally listens on port "DEFAULT_GIT_PORT"
 aka 9418.  It waits for a connection asking for a service, and will serve
 that service if it is enabled.
 
 It verifies that the directory has the magic file "git-daemon-export-ok", and
-it will refuse to export any git directory that hasn't explicitly been marked
-for export this way (unless the '--export-all' parameter is specified). If you
+it will refuse to export any Git directory that hasn't explicitly been marked
+for export this way (unless the `--export-all` parameter is specified). If you
 pass some directory paths as 'git daemon' arguments, you can further restrict
 the offers to a whitelist comprising of those.
 
@@ -37,7 +39,7 @@ By default, only `upload-pack` service is enabled, which serves
 from 'git fetch', 'git pull', and 'git clone'.
 
 This is ideally suited for read-only updates, i.e., pulling from
-git repositories.
+Git repositories.
 
 An `upload-archive` also exists to serve 'git archive'.
 
@@ -51,7 +53,7 @@ OPTIONS
 
 --base-path=<path>::
        Remap all the path requests as relative to the given path.
-       This is sort of "GIT root" - if you run 'git daemon' with
+       This is sort of "Git root" - if you run 'git daemon' with
        '--base-path=/srv/git' on example.com, then if you later try to pull
        'git://example.com/hello.git', 'git daemon' will interpret the path
        as '/srv/git/hello.git'.
@@ -73,7 +75,7 @@ OPTIONS
        whitelist.
 
 --export-all::
-       Allow pulling from all directories that look like GIT repositories
+       Allow pulling from all directories that look like Git repositories
        (have the 'objects' and 'refs' subdirectories), even if they
        do not have the 'git-daemon-export-ok' file.
 
@@ -88,10 +90,10 @@ OPTIONS
        is not supported, then --listen=hostname is also not supported and
        --listen must be given an IPv4 address.
        Can be given more than once.
-       Incompatible with '--inetd' option.
+       Incompatible with `--inetd` option.
 
 --port=<n>::
-       Listen on an alternative port.  Incompatible with '--inetd' option.
+       Listen on an alternative port.  Incompatible with `--inetd` option.
 
 --init-timeout=<n>::
        Timeout (in seconds) between the moment the connection is established
@@ -147,6 +149,13 @@ OPTIONS
 Giving these options is an error when used with `--inetd`; use
 the facility of inet daemon to achieve the same before spawning
 'git daemon' if needed.
++
+Like many programs that switch user id, the daemon does not reset
+environment variables such as `$HOME` when it runs git programs,
+e.g. `upload-pack` and `receive-pack`. When using this option, you
+may also want to set and export `HOME` to point at the home
+directory of `<user>` before starting the daemon, and make sure any
+Git configuration files in that directory are readable by `<user>`.
 
 --enable=<service>::
 --disable=<service>::
@@ -160,10 +169,9 @@ the facility of inet daemon to achieve the same before spawning
 --forbid-override=<service>::
        Allow/forbid overriding the site-wide default with per
        repository configuration.  By default, all the services
-       are overridable.
+       may be overridden.
 
---informative-errors::
---no-informative-errors::
+--[no-]informative-errors::
        When informative errors are turned on, git-daemon will report
        more verbose errors to the client, differentiating conditions
        like "no such repository" from "repository not exported". This
@@ -176,11 +184,11 @@ the facility of inet daemon to achieve the same before spawning
        Every time a client connects, first run an external command
        specified by the <path> with service name (e.g. "upload-pack"),
        path to the repository, hostname (%H), canonical hostname
-       (%CH), ip address (%IP), and tcp port (%P) as its command line
+       (%CH), IP address (%IP), and TCP port (%P) as its command-line
        arguments. The external command can decide to decline the
        service by exiting with a non-zero status (or to allow it by
        exiting with a zero status).  It can also look at the $REMOTE_ADDR
-       and $REMOTE_PORT environment variables to learn about the
+       and `$REMOTE_PORT` environment variables to learn about the
        requestor when making this decision.
 +
 The external command can optionally write a single line to its
@@ -196,7 +204,7 @@ SERVICES
 --------
 
 These services can be globally enabled/disabled using the
-command line options of this command.  If a finer-grained
+command-line options of this command.  If finer-grained
 control is desired (e.g. to allow 'git archive' to be run
 against only in a few selected repositories the daemon serves),
 the per-repository configuration file can be used to enable or
@@ -288,7 +296,7 @@ they correspond to these IP addresses.
 selectively enable/disable services per repository::
        To enable 'git archive --remote' and disable 'git fetch' against
        a repository, have the following in the configuration file in the
-       repository (that is the file 'config' next to 'HEAD', 'refs' and
+       repository (that is the file 'config' next to `HEAD`, 'refs' and
        'objects').
 +
 ----------------------------------------------------------------