Changing to Git
Recently I started a discussion on the code quality mailing list about moving Flake8 from Mercurial to Git and to a different hosted service. There wasn't a great deal of objection to the idea and it's a request that we have received several times over the last couple years. The one idea that came up that interested me most was the idea of using an Open Source platform to continue development instead of using GitHub or BitBucket.
Choosing a Open Source Service
In this case, there are two prominent open source git hosting services: Gitorious and GitLab. I chose GitLab for two reasons:
- It is similar in design and function to GitHub
- It allows users to sign in with GitHub
Gitorious, on the other hand, allows users to create their own account or use OpenID to sign in, but doesn't allow users with GitHub accounts to sign in with them. This made the choice rather easy for me.
Mirroring on GitHub
The choice to mirror the repository on GitHub was also a fairly easy one. Most developers prefer to use GitHub to other services. We hope that mirroring our development there will make the project more discoverable for new developers.
The GitHub Support Team was wonderfully helpful in helping us set up mirroring for this repository last weekend (Saturday, 13 September 2014). Once a day, the mirror will sync from the GitLab repository.
Unfortunately, there is no way to disable pull requests to GitHub. All pull requests received on GitHub will be asked to move to GitLab for review and discussion. No one on the project wants to end up reviewing pull requests in two separate places so we would ask that you plan accordingly when contributing.
Project History and Future
The mercurial history has already been exported to git using hg-fast-export. I have also downloaded a history of all of the issues opened on the old mercurial repository. The last two things left to do are
- to convert all of the tags from mercurial tags to git tags
- to import the issues from BitBucket
Unfortunately, there's no way to preserve the pull request history from BitBucket. We will soon archive the project on BitBucket to prevent any further confusion.