BT

Go Language Moves to Git and GitHub

| by Sergio De Simone Follow 14 Followers on Nov 18, 2014. Estimated reading time: 2 minutes |

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 Stage
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.

Tell us what you think

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

Email me replies to any of my messages in this thread

Rob Pyke? by Prashanth Babu

Typo: Rob Pike

Rob Pike by 臧 秀涛

spell error

Re: Rob Pyke? by Sergio De Simone

thanks, corrected.

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

Email me replies to any of my messages in this thread

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

Email me replies to any of my messages in this thread

3 Discuss

Login to InfoQ to interact with what matters most to you.


Recover your password...

Follow

Follow your favorite topics and editors

Quick overview of most important highlights in the industry and on the site.

Like

More signal, less noise

Build your own feed by choosing topics you want to read about and editors you want to hear from.

Notifications

Stay up-to-date

Set up your notifications and don't miss out on content that matters to you

BT