Gitolite

42 points by matklad


fanf

In 2013 I set up a git server based on gitolite and gitweb at Cambridge University. I chose them because they looked like they would require much less admin time than the fancier alternatives (things like early GitLab or Gitorious). This turned out to be mostly true.

Gitolite is fairly eccentric, based on commands invoked via ssh and a fancy configuration file for access control. I suppose command lines are more popular now than they were then, but the lack of a web admin console makes it a bit offputting. I tried to make it easier to get started but it was only for the technically confident.

I needed it to require very little admin time because there was zero staff time available for running a git service. I wanted to demonstrate that there was enough demand to justify allocating time and budget, therefore to bypass the inevitable naysayers I stole some of my own time to spin up a stop-gap service.

I needed a git server for my own work, because I was using open source software distributed with git and keeping local changes in svn would have been intolerable, and storing the git repos in my home directory where no one else could find them was negligence. And I was aware (from things like Software Carpentry) that there was a lot of scientific programming going on but not enough software engineering support, and my department was mostly ignoring the gap. And I believed that we in central IT shouldn’t provide services just for our own use (pure overhead) but should design them to be useful to the wider university (and support teaching and research, which is the whole point).

Gitolite supported this bureaucratic hack by allowing me to delegate almost all of the user admin and support to a local expert in each research group or department who requested a shared account for their group. And because gitolite is fairly arcane, the kinds of people who signed up were exactly the kinds of expert early adopters I was aiming for. I was pleased that a fairly large number of people were actively using the service and I almost never heard from them.

(I was particularly pleased by one group whose project spanned multiple universities, because I had aimed to support open collaboration so I deliberately did not restrict access to just people at Cambridge.)

The main thing I got wrong was underestimating how long the stop-gap would last (silly me). It ended up being about 8 years, after which (as I hoped) it was replaced by a properly staffed GitLab setup. The biggest time sink was re-engineering it to improve its resilience: the near-real-time replication of the git repositories to another site was probably more complicated than necessary, heh.