Hacker News new | ask | show | jobs
by shelf 4978 days ago
I've never understood what exactly Gitorious / Gitolite offer on top of your typical git deployment, which includes git-daemon and gitweb. The rest is handled by ssh and your OS' authentication/permissions system, whatever that may be.

The website for Gitolite is not exactly clear on this, either. 'Features' include 'fine-grained' permissions and groups, the ability to set git options... A pretty long-winded way to avoid setting up git properly, given that setting it up is very easy indeed.

4 comments

Gitolite/Gitorious are used to manage repositories and access to these with single SSH/Git login/connection. Use case OP described is not what it was created for. Instead Gitolite and Gitorous are used together with tools like Redmine to setup full fledged project managements systems where you can create repositories for projects, commit to these, update tickets based on commits, etc. For use cases like this you have to have GIT control over single connection (did you notice all github GIT urls are like git@github.com?)

What gitorious do - instead /bin/bash it puts custom shell script for SSH which manages all stuff like repo creation, authorizing users by their keys, etc.

tl;dr; For OP use case gitolite is probably overkill. He likely could get away with something like s3fs and mount any number of S3 buckets and push to these as to regular local git repo.

Get away with? Sure. It would not be nearly as useful or as seamless as gitolite though.
The biggest thing that Gitolite buys me is the wild repos feature. When I want to create a new repo it takes zero effort. All I have to do is add a new remote and push and gitolite takes care of creating the repo, including setting up the the common hooks.

For larger orgs gitolite's advantage is mainly centralizing admin.

What I like about gitolite is that I can give push permissions to people, but deny pushing to the master branch. Of course, this can be done with mere git hooks, but gitolite makes it easy and centralizes the admin configs.

It is essentially useful to use git in a svn-like workflow.

What I like with gitolite is that once it's run, you can create a new repository with custom permissions with only one commit in the "admin" repository. It is also not necessary to create users for your git users.
I suppose this is a valid 'pro.' Creating users is nothing to be feared, though. It is possible and simple to set up a user to be refused a shell and subjected to resource constraints.

I have always placed my git servers in BSD jails to minimise the worry, but you penguins have no such option!

Creating users might be a problem, if you are working within a larger organisation (university in my case).

Penguins have LXC, which is comparable to BSD jails or Solaris containers.