about summary refs log tree commit diff
path: root/third_party/git/Documentation/howto/setup-git-server-over-http.txt
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/git/Documentation/howto/setup-git-server-over-http.txt')
-rw-r--r--third_party/git/Documentation/howto/setup-git-server-over-http.txt285
1 files changed, 0 insertions, 285 deletions
diff --git a/third_party/git/Documentation/howto/setup-git-server-over-http.txt b/third_party/git/Documentation/howto/setup-git-server-over-http.txt
deleted file mode 100644
index bfe6f9b500..0000000000
--- a/third_party/git/Documentation/howto/setup-git-server-over-http.txt
+++ /dev/null
@@ -1,285 +0,0 @@
-From: Rutger Nijlunsing <rutger@nospam.com>
-Subject: Setting up a Git repository which can be pushed into and pulled from over HTTP(S).
-Date: Thu, 10 Aug 2006 22:00:26 +0200
-Content-type: text/asciidoc
-
-How to setup Git server over http
-=================================
-
-NOTE: This document is from 2006.  A lot has happened since then, and this
-document is now relevant mainly if your web host is not CGI capable.
-Almost everyone else should instead look at linkgit:git-http-backend[1].
-
-Since Apache is one of those packages people like to compile
-themselves while others prefer the bureaucrat's dream Debian, it is
-impossible to give guidelines which will work for everyone. Just send
-some feedback to the mailing list at git@vger.kernel.org to get this
-document tailored to your favorite distro.
-
-
-What's needed:
-
-- Have an Apache web-server
-
-  On Debian:
-    $ apt-get install apache2
-    To get apache2 by default started,
-    edit /etc/default/apache2 and set NO_START=0
-
-- can edit the configuration of it.
-
-  This could be found under /etc/httpd, or refer to your Apache documentation.
-
-  On Debian: this means being able to edit files under /etc/apache2
-
-- can restart it.
-
-  'apachectl --graceful' might do. If it doesn't, just stop and
-  restart apache. Be warning that active connections to your server
-  might be aborted by this.
-
-  On Debian:
-    $ /etc/init.d/apache2 restart
-  or
-    $ /etc/init.d/apache2 force-reload
-    (which seems to do the same)
-  This adds symlinks from the /etc/apache2/mods-enabled to
-  /etc/apache2/mods-available.
-
-- have permissions to chown a directory
-
-- have Git installed on the client, and
-
-- either have Git installed on the server or have a webdav client on
-  the client.
-
-In effect, this means you're going to be root, or that you're using a
-preconfigured WebDAV server.
-
-
-Step 1: setup a bare Git repository
------------------------------------
-
-At the time of writing, git-http-push cannot remotely create a Git
-repository. So we have to do that at the server side with Git. Another
-option is to generate an empty bare repository at the client and copy
-it to the server with a WebDAV client (which is the only option if Git
-is not installed on the server).
-
-Create the directory under the DocumentRoot of the directories served
-by Apache. As an example we take /usr/local/apache2, but try "grep
-DocumentRoot /where/ever/httpd.conf" to find your root:
-
-    $ cd /usr/local/apache/htdocs
-    $ mkdir my-new-repo.git
-
-  On Debian:
-
-    $ cd /var/www
-    $ mkdir my-new-repo.git
-
-
-Initialize a bare repository
-
-    $ cd my-new-repo.git
-    $ git --bare init
-
-
-Change the ownership to your web-server's credentials. Use `"grep ^User
-httpd.conf"` and `"grep ^Group httpd.conf"` to find out:
-
-    $ chown -R www.www .
-
-  On Debian:
-
-    $ chown -R www-data.www-data .
-
-
-If you do not know which user Apache runs as, you can alternatively do
-a "chmod -R a+w .", inspect the files which are created later on, and
-set the permissions appropriately.
-
-Restart apache2, and check whether http://server/my-new-repo.git gives
-a directory listing. If not, check whether apache started up
-successfully.
-
-
-Step 2: enable DAV on this repository
--------------------------------------
-
-First make sure the dav_module is loaded. For this, insert in httpd.conf:
-
-    LoadModule dav_module libexec/httpd/libdav.so
-    AddModule mod_dav.c
-
-Also make sure that this line exists which is the file used for
-locking DAV operations:
-
-  DAVLockDB "/usr/local/apache2/temp/DAV.lock"
-
-  On Debian these steps can be performed with:
-
-    Enable the dav and dav_fs modules of apache:
-    $ a2enmod dav_fs
-    (just to be sure. dav_fs might be unneeded, I don't know)
-    $ a2enmod dav
-    The DAV lock is located in /etc/apache2/mods-available/dav_fs.conf:
-      DAVLockDB /var/lock/apache2/DAVLock
-
-Of course, it can point somewhere else, but the string is actually just a
-prefix in some Apache configurations, and therefore the _directory_ has to
-be writable by the user Apache runs as.
-
-Then, add something like this to your httpd.conf
-
-  <Location /my-new-repo.git>
-     DAV on
-     AuthType Basic
-     AuthName "Git"
-     AuthUserFile /usr/local/apache2/conf/passwd.git
-     Require valid-user
-  </Location>
-
-  On Debian:
-    Create (or add to) /etc/apache2/conf.d/git.conf :
-
-    <Location /my-new-repo.git>
-       DAV on
-       AuthType Basic
-       AuthName "Git"
-       AuthUserFile /etc/apache2/passwd.git
-       Require valid-user
-    </Location>
-
-    Debian automatically reads all files under /etc/apache2/conf.d.
-
-The password file can be somewhere else, but it has to be readable by
-Apache and preferably not readable by the world.
-
-Create this file by
-    $ htpasswd -c /usr/local/apache2/conf/passwd.git <user>
-
-    On Debian:
-      $ htpasswd -c /etc/apache2/passwd.git <user>
-
-You will be asked a password, and the file is created. Subsequent calls
-to htpasswd should omit the '-c' option, since you want to append to the
-existing file.
-
-You need to restart Apache.
-
-Now go to http://<username>@<servername>/my-new-repo.git in your
-browser to check whether it asks for a password and accepts the right
-password.
-
-On Debian:
-
-   To test the WebDAV part, do:
-
-   $ apt-get install litmus
-   $ litmus http://<servername>/my-new-repo.git <username> <password>
-
-   Most tests should pass.
-
-A command-line tool to test WebDAV is cadaver. If you prefer GUIs, for
-example, konqueror can open WebDAV URLs as "webdav://..." or
-"webdavs://...".
-
-If you're into Windows, from XP onwards Internet Explorer supports
-WebDAV. For this, do Internet Explorer -> Open Location ->
-http://<servername>/my-new-repo.git [x] Open as webfolder -> login .
-
-
-Step 3: setup the client
-------------------------
-
-Make sure that you have HTTP support, i.e. your Git was built with
-libcurl (version more recent than 7.10). The command 'git http-push' with
-no argument should display a usage message.
-
-Then, add the following to your $HOME/.netrc (you can do without, but will be
-asked to input your password a _lot_ of times):
-
-    machine <servername>
-    login <username>
-    password <password>
-
-...and set permissions:
-     chmod 600 ~/.netrc
-
-If you want to access the web-server by its IP, you have to type that in,
-instead of the server name.
-
-To check whether all is OK, do:
-
-   curl --netrc --location -v http://<username>@<servername>/my-new-repo.git/HEAD
-
-...this should give something like 'ref: refs/heads/master', which is
-the content of the file HEAD on the server.
-
-Now, add the remote in your existing repository which contains the project
-you want to export:
-
-   $ git-config remote.upload.url \
-       http://<username>@<servername>/my-new-repo.git/
-
-It is important to put the last '/'; Without it, the server will send
-a redirect which git-http-push does not (yet) understand, and git-http-push
-will repeat the request infinitely.
-
-
-Step 4: make the initial push
------------------------------
-
-From your client repository, do
-
-   $ git push upload master
-
-This pushes branch 'master' (which is assumed to be the branch you
-want to export) to repository called 'upload', which we previously
-defined with git-config.
-
-
-Using a proxy:
---------------
-
-If you have to access the WebDAV server from behind an HTTP(S) proxy,
-set the variable 'all_proxy' to `http://proxy-host.com:port`, or
-`http://login-on-proxy:passwd-on-proxy@proxy-host.com:port`. See 'man
-curl' for details.
-
-
-Troubleshooting:
-----------------
-
-If git-http-push says
-
-   Error: no DAV locking support on remote repo http://...
-
-then it means the web-server did not accept your authentication. Make sure
-that the user name and password matches in httpd.conf, .netrc and the URL
-you are uploading to.
-
-If git-http-push shows you an error (22/502) when trying to MOVE a blob,
-it means that your web-server somehow does not recognize its name in the
-request; This can happen when you start Apache, but then disable the
-network interface. A simple restart of Apache helps.
-
-Errors like (22/502) are of format (curl error code/http error
-code). So (22/404) means something like 'not found' at the server.
-
-Reading /usr/local/apache2/logs/error_log is often helpful.
-
-  On Debian: Read /var/log/apache2/error.log instead.
-
-If you access HTTPS locations, Git may fail verifying the SSL
-certificate (this is return code 60). Setting http.sslVerify=false can
-help diagnosing the problem, but removes security checks.
-
-
-Debian References: http://www.debian-administration.org/articles/285
-
-Authors
-  Johannes Schindelin <Johannes.Schindelin@gmx.de>
-  Rutger Nijlunsing <git@wingding.demon.nl>
-  Matthieu Moy <Matthieu.Moy@imag.fr>