InfoQ

News

GitHub - Rails-based Git repository hosting

Posted by Mirko Stocker on Mar 18, 2008 06:55 PM

Community
Ruby
Topics
Collaboration,
Technology,
Ruby on Rails,
Open Source
Tags
Rails,
Subversion

Git is a distributed version control system, originally written by Linus Torvalds to manage the source code of the Linux kernel. It has also become quite successful on other projects, especially in the Ruby world, where the list of prominent users includes Rubinius and Merb. Git can also be used by the deployments tools Capistrano and Vlad the Deployer.

As stated above, Git is a distributed version control system, which means that there isn't only one fully-fledged master repository, but every clone can be used stand-alone and changes can be merged between any two repositories.

GitHub hosts git repositories and provides a web interface to it, but contrary to other such services like SourceForge or Google Code, a unique selling point of GitHub is the easy forking of other projects. Contributing to a project is as simple as clicking the "fork" button on the project's site, checking out and committing changes to your forked repository and finally proposing a merge to the project owner via the built in "pull request" feature. GitHub has already been coined as being the MySpace for hackers:

Forking on GitHub is like friending on Myspace (or Facebook [...]) inasmuch as this is the point where a line is drawn from one node to another in the social graph.

Naturally, the GitHub project itself is hosted on GitHub, but in a private, non-public viewable repository. While open source projects are hosted for free, private repositories are not. Chris Wanstrath, one of the GitHub developers, confirmed that the plan is to finance the free repository hosting through paid, private repositories:

Yes, that's the plan. In doing client work, developing FamSpam, and even developing GitHub itself, GitHub's private repositories have been a real life saver. Anyone who values both their time and staying on the same page as the rest of their team should get some real value out of it.

Chris Wanstrath shared some information about the inner workings of GitHub with InfoQ:

GitHub is mostly implemented in Rails. The post-commit integration mini-apps we're working on are all written in Merb, we use the Python Pygments for syntax highlighting, and we use Ara T. Howard's Bj plus some Ruby scripts for our queueing system. And, of course, we use the Ruby Grit library to interface with Git.

GitHub already has a quite impressive list of features, along the mandatory repository browser, there's a project Wiki and even a GitHub gem to make working with GitHub from the shell even more comfortable. More features are planned for the future:

A lot of people want a ticketing system, so a simple one is in the works. We're also working on a RubyGems server and some pre-rolled post-commit hooks, as I mentioned. If you can't or just don't want to host a daemon on your own, you can use one of ours.

We're also working on some more features to help companies stay in sync when using Github.

Finally, we're working on an API. We'll be rolling out bits of the read-only stuff real soon now, followed by some awesome 'write' integration. You'll be able to post events to the news feed, send messages, and other cool stuff using the API.
Although no official release date has been set yet, GitHub is expected to officially launch around the end of March (it is online now, but registration is by invitation only). More information can be found on the official GitHub website or the GitHub blog. The list of open source projects hosted at GitHub is also available.

1 comment

Reply

Thanks by seri katil Posted Apr 2, 2008 12:35 PM
  1. Back to top

    Thanks

    Apr 2, 2008 12:35 PM by seri katil

    Hepl Blog >>> evden eve nakliyat

Exclusive Content

Tapestry for Nonbelievers

A new article by I. Drobiazko and R. Zubairov introduces v. 5 of the Apache Tapestry component-oriented web framework. The tutorial shows how to create a component and covers IoC in Tapestry and Ajax.

Pete Lacey on REST and Web Services

In this interview, Burton Group consultant Pete Lacey talks to Stefan Tilkov about his disillusionment with SOAP, his opinion on REST, and addresses some of the perceived shortcomings REST vs. WS-*.

Business Natural Languages Development in Ruby

Jay Fields presents his concept of Business Natural Languages - a type of Domain Specific Languages geared towards being readable by domain experts.

Distributed Version Control Systems: A Not-So-Quick Guide Through

Adoption and interest for Distributed Version Control Systems is constantly rising. We will introduce the concept of DVCS and have a look at 3 actors in the area: git, Mercurial and Bazaar.

Segundo Velasquez and Agile as Seen Through the Customer's Eyes

Deborah Hartmann interviewed Segundo Velasquez about his experience as customer with an Agile team during the initial phase of software design of a product.

Fine Grained Versioning with ClickOnce

David Cooksey shows how to fine grained versioning to a ClickOnce deployment using an HttpHandler written with ASP.NET, making partial rollouts to a test audience much easier.

Implementing Manual Activities in Windows Workflow

Windows workflow (WF) is an excellent framework for implementing business processes, but lacks support for human activities. This article describes a completely generic approach for changing this.

Markus Voelter about Software Architecture Documentation

In this interview taken during OOPSLA 2007, Markus Voelter talks about the importance of documenting the software architecture, and gives some good and also bad examples on how it could be done.