@matheusbsbs / matheus-bagliano / commits / f01f81505a
Fork 0

Document that WebDAV doesn't need git on the server, and works over SSL

I managed to set up a Git repository on a preconfigured WebDAV server, and using HTTPS, without installing Git on it or changing the server configuration. This works through a proxy too. 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@imag.fr> Signed-off-by: Junio C Hamano <gitster@pobox.com>

Matthieu Moy committed Apr 13, 2008 at 15:38 UTC f01f81505a401f774855ae07dd1be01efde0cfbd
1 file changed +33 -12
Documentation/howto/setup-git-server-over-http.txt
+33 -12
@@ -1,5 +1,5 @@
1 From: Rutger Nijlunsing <rutger@nospam.com>
2 -Subject: Setting up a git repository which can be pushed into and pulled from over HTTP.
2 +Subject: Setting up a git repository which can be pushed into and pulled from over HTTP(S).
3 Date: Thu, 10 Aug 2006 22:00:26 +0200
4
5 Since Apache is one of those packages people like to compile
@@ -40,9 +40,13 @@ What's needed:
40
41 - have permissions to chown a directory
42
43 -- have git installed at the server _and_ client
43 +- have git installed on the client, and
44
45 -In effect, this probably means you're going to be root.
45 +- either have git installed on the server or have a webdav client on
46 + the client.
47 +
48 +In effect, this means you're going to be root, or that you're using a
49 +preconfigured WebDAV server.
50
51
52 Step 1: setup a bare GIT repository
@@ -50,9 +54,9 @@ Step 1: setup a bare GIT repository
54
55 At the time of writing, git-http-push cannot remotely create a GIT
56 repository. So we have to do that at the server side with git. Another
53 -option would be to generate an empty repository at the client and copy
54 -it to the server with WebDAV. But then you're probably the first to
55 -try that out :)
57 +option is to generate an empty bare repository at the client and copy
58 +it to the server with a WebDAV client (which is the only option if Git
59 +is not installed on the server).
60
61 Create the directory under the DocumentRoot of the directories served
62 by Apache. As an example we take /usr/local/apache2, but try "grep
@@ -169,7 +173,9 @@ On Debian:
173
174 Most tests should pass.
175
172 -A command line tool to test WebDAV is cadaver.
176 +A command line tool to test WebDAV is cadaver. If you prefer GUIs, for
177 +example, konqueror can open WebDAV URLs as "webdav://..." or
178 +"webdavs://...".
179
180 If you're into Windows, from XP onwards Internet Explorer supports
181 WebDAV. For this, do Internet Explorer -> Open Location ->
@@ -179,8 +185,9 @@ http://<servername>/my-new-repo.git [x] Open as webfolder -> login .
185 Step 3: setup the client
186 ------------------------
187
182 -Make sure that you have HTTP support, i.e. your git was built with curl.
183 -The easiest way to check is to look for the executable 'git-http-push'.
188 +Make sure that you have HTTP support, i.e. your git was built with
189 +curl (version more recent than 7.10). The command 'git http-push' with
190 +no argument should display a usage message.
191
192 Then, add the following to your $HOME/.netrc (you can do without, but will be
193 asked to input your password a _lot_ of times):
@@ -197,10 +204,10 @@ instead of the server name.
204
205 To check whether all is OK, do:
206
200 - curl --netrc --location -v http://<username>@<servername>/my-new-repo.git/
201 -
202 -...this should give a directory listing in HTML of /var/www/my-new-repo.git .
207 + curl --netrc --location -v http://<username>@<servername>/my-new-repo.git/HEAD
208
209 +...this should give something like 'ref: refs/heads/master', which is
210 +the content of the file HEAD on the server.
211
212 Now, add the remote in your existing repository which contains the project
213 you want to export:
@@ -225,6 +232,15 @@ want to export) to repository called 'upload', which we previously
232 defined with git-config.
233
234
235 +Using a proxy:
236 +--------------
237 +
238 +If you have to access the WebDAV server from behind an HTTP(S) proxy,
239 +set the variable 'all_proxy' to 'http://proxy-host.com:port', or
240 +'http://login-on-proxy:passwd-on-proxy@proxy-host.com:port'. See 'man
241 +curl' for details.
242 +
243 +
244 Troubleshooting:
245 ----------------
246
@@ -248,9 +264,14 @@ Reading /usr/local/apache2/logs/error_log is often helpful.
264
265 On Debian: Read /var/log/apache2/error.log instead.
266
267 +If you access HTTPS locations, git may fail verifying the SSL
268 +certificate (this is return code 60). Setting http.sslVerify=false can
269 +help diagnosing the problem, but removes security checks.
270 +
271
272 Debian References: http://www.debian-administration.org/articles/285
273
274 Authors
275 Johannes Schindelin <Johannes.Schindelin@gmx.de>
276 Rutger Nijlunsing <git@wingding.demon.nl>
277 + Matthieu Moy <Matthieu.Moy@imag.fr>