BT

InfoQ Homepage News Go Language Moves to Git and GitHub

Go Language Moves to Git and GitHub

Bookmarks

Rob Pike, lead designer of Go at Google, announced on Go's Google Group that Go language is moving to Git and GitHub. "All data will be preserved," said Rob, but GitHub will not be used to handle pull requests and code reviews. Google's own Gerrit will be used instead because it fits better the requirements of a large project such as Go, explained Google engineers.

Go language was open sourced at the end of 2009 and its development started on subversion, as Rob recounts, later moved to Perforce, then to Mercurial. During the next month the project will be transitioned to Git and GitHub, including all of its sub-repositories, the issue tracker, and the wiki.

Mercurial has served us well, but it's time to move on. The world today is quite different from the world then.

The main reasons behind the decision to adopt Git and GitHub, says Rob, are the availability of a Git-based code review system that fits the Go team workflow and the fact that a large part of the Go community is currently using Git and GitHub. As mentioned, a Google-hosted instance of Gerrit will be used for code reviews. In a separate discussion about the use of Gerrit, Andrew Gerrand, Google Go engineer, explained that Gerrit has several advantages over GitHub's code review tool:

  • In GitHub, merging pull requests causes pollution in the change history. "Gerrit will automatically rebase the changes atop the master branch head, leaving a nice linear history."
  • GitHub forces contributors to create a public fork of the repository, if they do not have write access to it.
  • Gerrit allows to collect many comments on a single pull requests, then just sending a single email.
  • Gerrit supports multiple 'patch sets' for a particular change, which are particularly useful when reviewing large changes.

The initial announcement also clarified the time frame for the transition:

The transition will happen soon after the 1.4 release in early December. All development for 1.5 will happen in GitHub; the Mercurial tree will be closed to changes after the 1.4 release.

In order for all data to be transferred over to GitHub, developers who have added issues or comments on the issue tracker should explicitly give their permission to migrate those issues. Giving permission is not mandatory, though. In those cases where permission will not be given, issues will be owned by a "gopherbot" account.

This gives us access to your GitHub account to enable us to re-create your issues and comments as you, so that you will be notified of changes to issues you've contributed to.

In the discussion ensuing from the announcement post, several developers expressed concerns about the requirement to give Google permission to see both private and public repositories. Brad Fitzpatrick, Go engineer at Google, explained that "that's the only granularity level that this GitHub authorisation system permits. It's an all-or-nothing."

Rate this Article

Adoption
Style

Hello stranger!

You need to Register an InfoQ account or or login to post comments. But there's so much more behind being registered.

Get the most out of the InfoQ experience.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Community comments

  • Rob Pyke?

    by Prashanth Babu /

    Your message is awaiting moderation. Thank you for participating in the discussion.

    Typo: Rob Pike

  • Rob Pike

    by 臧 秀涛 /

    Your message is awaiting moderation. Thank you for participating in the discussion.

    spell error

  • Re: Rob Pyke?

    by Sergio De Simone /

    Your message is awaiting moderation. Thank you for participating in the discussion.

    thanks, corrected.

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

Allowed html: a,b,br,blockquote,i,li,pre,u,ul,p

BT

Is your profile up-to-date? Please take a moment to review and update.

Note: If updating/changing your email, a validation request will be sent

Company name:
Company role:
Company size:
Country/Zone:
State/Province/Region:
You will be sent an email to validate the new email address. This pop-up will close itself in a few moments.