-
Notifications
You must be signed in to change notification settings - Fork 0
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add a HOWTO for setting up a standalone git daemon
Setting up a git-daemon came up the other day on IRC, and it is slightly non trivial for the uninitiated. Signed-off-by: Johannes Schindelin <johannes.schindelin@gmx.de> Signed-off-by: Junio C Hamano <junkio@cox.net>
- Loading branch information
Johannes Schindelin
authored and
Junio C Hamano
committed
Mar 20, 2007
1 parent
824f782
commit e29b96d
Showing
1 changed file
with
52 additions
and
0 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,52 @@ | ||
How to use git-daemon | ||
|
||
Git can be run in inetd mode and in stand alone mode. But all you want is | ||
let a coworker pull from you, and therefore need to set up a git server | ||
real quick, right? | ||
|
||
Note that git-daemon is not really chatty at the moment, especially when | ||
things do not go according to plan (e.g. a socket could not be bound). | ||
|
||
Another word of warning: if you run | ||
|
||
$ git ls-remote git://127.0.0.1/rule-the-world.git | ||
|
||
and you see a message like | ||
|
||
fatal: The remote end hung up unexpectedly | ||
|
||
it only means that _something_ went wrong. To find out _what_ went wrong, | ||
you have to ask the server. (Git refuses to be more precise for your | ||
security only. Take off your shoes now. You have any coins in your pockets? | ||
Sorry, not allowed -- who knows what you planned to do with them?) | ||
|
||
With these two caveats, let's see an example: | ||
|
||
$ git daemon --reuseaddr --verbose --base-path=/home/gitte/git \ | ||
--export-all -- /home/gitte/git/rule-the-world.git | ||
|
||
(Of course, unless your user name is `gitte` _and_ your repository is in | ||
~/rule-the-world.git, you have to adjust the paths. If your repository is | ||
not bare, be aware that you have to type the path to the .git directory!) | ||
|
||
This invocation tries to reuse the address if it is already taken | ||
(this can save you some debugging, because otherwise killing and restarting | ||
git-daemon could just silently fail to bind to a socket). | ||
|
||
Also, it is (relatively) verbose when somebody actually connects to it. | ||
It also sets the base path, which means that all the projects which can be | ||
accessed using this daemon have to reside in or under that path. | ||
|
||
The option `--export-all` just means that you _don't_ have to create a | ||
file named `git-daemon-export-ok` in each exported repository. (Otherwise, | ||
git-daemon would complain loudly, and refuse to cooperate.) | ||
|
||
Last of all, the repository which should be exported is specified. It is | ||
a good practice to put the paths after a "--" separator. | ||
|
||
Now, test your daemon with | ||
|
||
$ git ls-remote git://127.0.0.1/rule-the-world.git | ||
|
||
If this does not work, find out why, and submit a patch to this document. | ||
|