path: root/Documentation/git-http-backend.txt
diff options
authorTarmigan Casebolt <>2009-12-28 21:49:00 (GMT)
committerJunio C Hamano <>2010-01-06 09:16:50 (GMT)
commit8b2bd7cdacf71260dbc954316af2bed8e076c182 (patch)
tree81e62e0a245f409adb2db62ec792c49ab1033901 /Documentation/git-http-backend.txt
parent902f235378cb2b2f6dd5dd664b9630c95321f0ae (diff)
Smart-http: check if repository is OK to export before serving it
Similar to how git-daemon checks whether a repository is OK to be exported, smart-http should also check. This check can be satisfied in two different ways: the environmental variable GIT_HTTP_EXPORT_ALL may be set to export all repositories, or the individual repository may have the file git-daemon-export-ok. Acked-by: Shawn O. Pearce <> Signed-off-by: Tarmigan Casebolt <> Signed-off-by: Junio C Hamano <>
Diffstat (limited to 'Documentation/git-http-backend.txt')
1 files changed, 10 insertions, 0 deletions
diff --git a/Documentation/git-http-backend.txt b/Documentation/git-http-backend.txt
index 67aec06..c8fe08a 100644
--- a/Documentation/git-http-backend.txt
+++ b/Documentation/git-http-backend.txt
@@ -18,6 +18,11 @@ The program supports clients fetching using both the smart HTTP protcol
and the backwards-compatible dumb HTTP protocol, as well as clients
pushing using the smart HTTP protocol.
+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
+GIT_HTTP_EXPORT_ALL environmental variable is set).
By default, only the `upload-pack` service is enabled, which serves
'git-fetch-pack' and 'git-ls-remote' clients, which are invoked from
'git-fetch', 'git-pull', and 'git-clone'. If the client is authenticated,
@@ -70,6 +75,7 @@ Apache 2.x::
SetEnv GIT_PROJECT_ROOT /var/www/git
ScriptAlias /git/ /usr/libexec/git-core/git-http-backend/
@@ -157,6 +163,10 @@ by the invoking web server, including:
+The GIT_HTTP_EXPORT_ALL environmental variable may be passed to
+'git-http-backend' to bypass the check for the "git-daemon-export-ok"
+file in each repository before allowing export of that repository.
The backend process sets GIT_COMMITTER_NAME to '$REMOTE_USER' and
ensuring that any reflogs created by 'git-receive-pack' contain some