tags:

views:

1983

answers:

2

I recently tried to setup git repo on a linux box and wasted about 10 hours with absolutely no results. There aren't any problems with compilation or anything like that, it's just configuration issue. 2 hours later I got mercurial to do everything i need:

  1. public repos
  2. web ui
  3. push/pull with per-user permissions (not tied to linux accounts)

Everything that I can see about git assumes that you are either just running it locally, using github or already have everything setup. I'm either not looking for the right keywords or there just no or very little info on the subject.

I do want to try git, but setting it up is a very discouraging experience. Can anyone point to something useful in these terms?

thank you!

+4  A: 

I believe (but I have not tried it yet) that gitosis is the way to go in order to:

  • make hosting git repos easier and safer. It
  • manages multiple repositories under one user account, using SSH keys to identify users.
    End users do not need shell accounts on the server, they will talk to one shared account that will not let them run arbitrary commands.

Here is a step-by-step tutorial.

And then an application of the tutorial: Gitosis — making hosting multiple Git repositories manageable (for Mac) or installing gitosis on Ubuntu

Followed by: Adding users to our secure Git setup

Finished with: Git subprojects (since your gitosis server manages all those different git repositories)


For truly light (cgi server) public Git repositories, you can:

  • set up a git server: git-daemon; it will listen on port 9418. By default, it will allow access to any directory that looks like a git directory and contains the magic file git-daemon-export-ok. Passing some directory paths as git-daemon arguments will further restrict the exports to those paths.
    You can also run git-daemon as an inetd service;
  • export with http place the newly created bare git repository in a directory that is exported by the web server, and make some adjustments to give web clients some extra information they need

Here is how to do it on an Apache server.

VonC
Tutorial erroneously assumes that I want to use SSH and that my client is Linux based. Unfortunately gitosis and that tutorial have contributed significantly to the time I've wasted trying to get git to work :(
alex
Sorry to hear that. "Linux box": what distro are you using ? And what specific difficulties were you facing by using gitosis (you may add all those data to your question, for hopefully getting better answer). In the meantime, I will try gitosis on my Ubuntu setup tomorrow ;)
VonC
The problem is that all of this is SSH based. Is it possible at all to install git on a cgi server, say lighttpd?
alex
A: 

You could just do

git instaweb

if you have lighttpd installed. That is only the web gui, though.

stigkj