1
1
From: Rutger Nijlunsing <
[email protected] >
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
3
Date: Thu, 10 Aug 2006 22:00:26 +0200
4
4
5
5
Since Apache is one of those packages people like to compile
@@ -40,19 +40,23 @@ What's needed:
40
40
41
41
- have permissions to chown a directory
42
42
43
- - have git installed at the server _and_ client
43
+ - have git installed on the client, and
44
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.
46
50
47
51
48
52
Step 1: setup a bare GIT repository
49
53
-----------------------------------
50
54
51
55
At the time of writing, git-http-push cannot remotely create a GIT
52
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).
56
60
57
61
Create the directory under the DocumentRoot of the directories served
58
62
by Apache. As an example we take /usr/local/apache2, but try "grep
@@ -169,7 +173,9 @@ On Debian:
169
173
170
174
Most tests should pass.
171
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://...".
173
179
174
180
If you're into Windows, from XP onwards Internet Explorer supports
175
181
WebDAV. For this, do Internet Explorer -> Open Location ->
@@ -179,8 +185,9 @@ http://<servername>/my-new-repo.git [x] Open as webfolder -> login .
179
185
Step 3: setup the client
180
186
------------------------
181
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.
184
191
185
192
Then, add the following to your $HOME/.netrc (you can do without, but will be
186
193
asked to input your password a _lot_ of times):
@@ -197,10 +204,10 @@ instead of the server name.
197
204
198
205
To check whether all is OK, do:
199
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
203
208
209
+ ...this should give something like 'ref: refs/heads/master', which is
210
+ the content of the file HEAD on the server.
204
211
205
212
Now, add the remote in your existing repository which contains the project
206
213
you want to export:
@@ -225,6 +232,15 @@ want to export) to repository called 'upload', which we previously
225
232
defined with git-config.
226
233
227
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:
[email protected] :port'. See 'man
241
+ curl' for details.
242
+
243
+
228
244
Troubleshooting:
229
245
----------------
230
246
@@ -248,9 +264,14 @@ Reading /usr/local/apache2/logs/error_log is often helpful.
248
264
249
265
On Debian: Read /var/log/apache2/error.log instead.
250
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
+
251
271
252
272
Debian References: http://www.debian-administration.org/articles/285
253
273
254
274
Authors
255
275
Johannes Schindelin <
[email protected] >
256
276
Rutger Nijlunsing <
[email protected] >
277
+
0 commit comments