Update 19. 05. 2013: I'm writing a book on git and GitLab, read more here: Writing a book on GitLab
Update: It’s been published, take a lookt at: GitLab Repository Management!
It’s written in ruby on rails and primarily maintained by Dmitriy Zaporozhets. He actually really swiftly supplied me with a big version of the logo in an email, because I wanted to write about his project. I think the site needs a press kit, so he can code more and answer fewer emails, since this projects seems very promising to small to medium code producing companies.
The installation guide provided worked like a charm for me. It’s quite a few steps to take, but you actually get a very neat looking interface and a great deal of usability for you and your collaborators. gitlab also provides paid hosting like gitorious at gitlab.com
I installed it on my debian vps and did not run into any trouble. Compiling ruby1.9.3x worked without trouble.
git, gitolite and gitlab
The installation process covers installing git, gitolite and the ruby/rails dependencies. I have tried gitosis previously when I just got started on git, but didn’t actually test it with multiple users.
Advantages of gitlab
Obviously the biggest advantage is, that you don’t have to choose between either open sourcing your project or paying for it being kept private and still not giving up a decent web interface.
The best thing in my opinion about gitlab is, that you can allow your co-developers or employees to administer their own SSH keys. They can easily put them into the web interface by copy paste and you don’t have to keep track of uploading the key files yourself or set up your own infrastructure for that.
Built in Tutorials
We developers usually are proud and have a memory like a Terabyte drive, but once in a while we forget stuff and we just like to put it in snippets and shortcuts.
This is what gitlab does for you pretty well, also taking into consideration if you started a project or not.
Disadvantages of gitlab
I have to say, that I’m not great at git and there probably is several ways to tackle these issues a smart way through git directly.
Fork & Pull Request
Merge requests are a part of gitlab, so it relies more on working with branches, instead of the individual repositories. Again, you can do all this with git, it’s just not directly in the web interface. Actually for internal projects, you’re more likely to work on branches, than with repos for every developer, from how I understand the workflow.
Try it! If you want to deploy your own git server, this is possibly the coolest ways to do it. With an interface that is familiar and not having to stare at the terminal, unless you want to.
Using gitlab in Production
I’ll make some people work with me on interesting software on my private server and by that give things a longer period of time before I open source them. Also I’ll be working on too many private projects to keep it in the 5 private repos on github, so probably I’ll have more to blog about as I gather experience.