I managed to set up a Git repository on a preconfigured WebDAV server, without installing Git on it or changing the configuration. This patch reflects this (it previously stated that Git was _necessary_ on the server, which isn't true). Also give a few hints to troubleshoting. Signed-off-by: Matthieu Moy <Matthieu.Moy@xxxxxxx> --- Documentation/howto/setup-git-server-over-http.txt | 36 +++++++++++++++---- 1 files changed, 28 insertions(+), 8 deletions(-) diff --git a/Documentation/howto/setup-git-server-over-http.txt b/Documentation/howto/setup-git-server-over-http.txt index 8eadc20..34d377a 100644 --- a/Documentation/howto/setup-git-server-over-http.txt +++ b/Documentation/howto/setup-git-server-over-http.txt @@ -40,9 +40,10 @@ What's needed: - have permissions to chown a directory -- have git installed at the server _and_ client +- have git installed on the client, and preferably on the server -In effect, this probably means you're going to be root. +In effect, this probably means you're going to be root, or that you're +using a preconfigured WebDAV server. Step 1: setup a bare GIT repository @@ -50,9 +51,9 @@ 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 would be to generate an empty repository at the client and copy -it to the server with WebDAV. But then you're probably the first to -try that out :) +option is to generate an empty 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 @@ -169,7 +170,8 @@ On Debian: Most tests should pass. -A command line tool to test WebDAV is cadaver. +A command line tool to test WebDAV is cadaver. If you prefer GUIs, +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 -> @@ -179,8 +181,10 @@ 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 curl. -The easiest way to check is to look for the executable 'git-http-push'. +Make sure that you have HTTP support, i.e. your git was built with +curl (and a recent enough version). The easiest way to check is to +look for the executable 'git-http-push'. 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): @@ -212,6 +216,10 @@ 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. +Also note that the URL should point to the git repository itself, that +is, to the '.git/' directory and not the working tree in case the +repository is non-bare. + Step 4: make the initial push ----------------------------- @@ -224,6 +232,13 @@ 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@xxxxxxxxxxxxxx:port'. See 'man +curl' for details. Troubleshooting: ---------------- @@ -248,9 +263,14 @@ 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@xxxxxx> Rutger Nijlunsing <git@xxxxxxxxxxxxxxxxx> + Matthieu Moy <Matthieu.Moy@xxxxxxx> -- 1.5.5.rc0.25.g9d90.dirty -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html