It’s been quite a journey, but we pulled through, and we are excited to finally present you with the first beta of Gitorious 3.0!
Take it for a spin
We set up a trial instance on v3.gitorious.org. You should especially check out the new repository pages. This instance is free for all, so please register an account and test at will. Just note that it will be removed once gitorious.org is upgraded to Gitorious 3. There are already some known issues, and I will be posting updates to this demo throughout next week.
For those of you who want to run Gitorious 3 yourself, there will eventually be a pre-built CentOS-based VM available on getgitorious.com. Unfortunately, we haven’t had time to fix that up yet, and as we are now going into vacation mode, it will be a few weeks.
Your best option for self-hosting Gitorious 3 at this point is to install Gitorious 2, e.g. by using the Community Edition, and follow the manual upgrade instructions found in the repository.
For people wanting to hack on Gitorious, there are instructions in the repo for CentOS and Ubuntu for how to get the development environment up and running. These take some shortcuts that are not recommended for production deployments, but will get everything up and running.
The big news in Gitorious 3 is the new and improved code browser. In addition to being a big improvement UI-wise, it supports many new small useful features. The code browser also provides quick access to browsing and viewing files, blame, log for individual paths and more.
URLs are gone. In their place we now have a unified way of browsing source code through
Automatic rendering of README in your repository
Gitorious will render any README file it can render in your repository.
Not only will it render READMEs in the root of your repository, but from any directory inside your repository.
Vastly improved syntax highlighting
The syntax highlighting in Gitorious 3 is powered by Pygments, arguably the best syntax highlighting toolkit around. This means Gitorious now supports every one of Pygments’ long list of supported languages.
When browsing files, you can mouse over lines to highlight them. If you want to share highlights with other people, click a line, copy the URL and share at will. You can also highlight a region by clicking a line, holding shift and clicking another one. Copy the URL and off it goes.
Convenient branch/ref selector
The code browser has a branch selector in the upper right corner, which is always available for any action where different branches/refs has different content (i.e. when browsing code, but also the log etc). This allows you to select branches and tags, or enter any Git oid to view it.
Gitorious has used a polling mechanism to serve tarballs for some time. In Gitorious 3, this is gone, and we use simple GETs to fetch tarballs. For high-traffic deployments, getgitorious.com has information on how to configure nginx so this scales well.
Detached code browser
The code browser shipping with Gitorious 3 is also released as a stand-alone tool that you can use to visualize your repositories locally. You can even use it for a light-weight read-only Git repository hosting service on your server. The tool is called Dolt, and if you have Ruby installed, you can try it out in 5 minutes:
gem install dolt. Run either in a git repository, or in a directory that contains many git repositories:
`cd /my/git/repo && dolt .`
In Gitorious 3, you can select the “admin” menu on your repositories when logged in, and it will offer you to manage web hooks. These are URLs that Gitorious will send a POST request to everytime someone pushes to the repository. Postbin is a great service for debugging these things, and here’s a sample payload from Gitorious.
Log in with either email or login
In the past, Gitorious would only allow logins with email address. If you’re using the database backed authentication, you can now log in with either your email address, or your login/screen name.
Rails 3.2 under the hood
Gitorious 3 is based on Rails 3, which brings vastly improved security, performance and provides a better base for evolving the software. Some of you may have seen that Rails 4 was just released, and Gitorious 3.1 or 3.2 will likely be moving to Rails 4. When that happens, Ruby 1.8.7 (and Ruby Enterprise Edition) support is gone (Rails 4 does not support it).
Backwards and forwards compatibility
Gitorious 3.0 supports Ruby 1.8.7, primarily because many Linux distros still ship this version. Ruby 1.8.7 support should not be expected to last for long. We recommend that you run Gitorious 3.0 on Ruby 1.9.3, and Ruby 2.0.0 support is just around the corner (one of our dependencies is causing a segfault, but we have verified that everything will work once an update is released for it).
Improved Ruby API
The low-level APIs in Gitorious have been refactored and restructured in several areas. This work is not yet complete, and will continue throughout the summer. This will eventually make it easier to perform power-user/admin tasks from the console. Gitorious 3 ships with “use cases” that can be run from the command line, and encapsulates everything required to carry out certain tasks. Some documentation is available.
Git data mirroring
We’re currently finishing up a new feature that allows Gitorious to mirror all git data to one or more mirrors. This will help in cases where you want a “ready to go” failover server for Gitorious. This feature does not ship with the first beta, but will be in the final version.
This is a beta, and as such, bugs should be expected. We would love your help and support in testing this, and we will soon roll out the beta on gitorious.org. Once we’ve gotten through the worst crop of bugs, Gitorious 3.0 stable will be tagged and released. When that happens, everyone will be strongly urged to upgrade, as we will not provide updates for Gitorious 2 much longer.
You will also notice that while most of the repository pages sport a shiny new UI, we have not completed this transition entirely. Changing the UI all around is a big task, and we will continue iterating on this until the old UI is gone. We’re sorry that the app will have two faces in this transitional period, but we believe the improvements we’ve made already makes it more than worthwhile.
What do you think?
Try it and out, and let us know what you think. We are very excited about this release, and hope you will like it as much as we do.
On behalf of the Gitorious team,