As per our blog post on the topic:
the GeoTools developers have been working, so far, with Subversion as the main version control system. However various core developers have been using Git as a SVN client for quite some time so far, and an [official mirror|https://github.com/geotools/geotools] of Geotools, automatically kept in synch with Subversion, is already available on GitHub.
We are now considering switching permantently from Subversion to Git, meaning the Subversion repository will eventually be abandoned and only the Git official central repo will be kept up to date.
Before making such move we'd like to hear from the users community, please take one minute to share your opinion about the switch to Git:
The results of this poll were:
|I'd prefer you to keep on using SVN||17|
|It's the same to me||14|
|I'd like Mecurial better||6|
|I'd like Bazaar better||0|
|Switching to Git is Great||64|
The poll generated 212 votes (this is greater than our number of comitters!)
This is not a suggestion to move to git - it is a proposal to move to github:
* uDig found that using http://gitorious.org/ worked out well - but still failed due to lack of documentation. Indeed most advice on using git comes from the github docs; stack exchange where github is always used as an example.
* The ease of use of the "fork me" / "pull request" workflow provides the critical glue to allow an open source project to work; as distributed version control no longer provides the motivation for contributors to obtain direct commit access.
* github is simply fashionable. Anecdotal evidence of this is an "if it is not on github must be dead" attitude encountered on IRC
There are three more hesitations which have now been resolved:
1) The active developers needed to be comfortable with the use of git. This has now taken place.
2) We needed a good story to tell for windows developers. With the release of the http://windows.github.com/ we now have a sensible suggestion.
3) GeoTools 8
Additional discussion and support on the email list:
Checklist form justin:
- a quick primer for people with sample commands for common tasks
- a list of git does and donts, ie don't rebase on a public branch, etc...
- line endings figured out re Bens comment
- a way to get git revision info from the build... we currently have an svn plugin that does this but no git equivalent, there is a plugin but it turned out to be pretty flaky so we ditched it
- decide on hosting, are we ok with github?
This proposal is under construction; and won't be submitted until the tasks are sorted out and GeoTools 8 is released.
Voting has not started yet:
- Andrea Aime: +1
- Ben Caradoc-Davies: +1
- Christian Mueller: +1
- Ian Turton: +1
- Justin Deoliveira: +1
- Jody Garnett: +1
- Simone Giannecchini:
This section is used to make sure your proposal is complete (did you remember documentation?) and has enough paid or volunteer time lined up to be a success
- JD: Update the documentation for checkout and build (can use the uDig docs as a good starting point for this)
- JD: Update the developers guide with a note about pull requests; and any other requirements:
- a quick Working with Git primer for people with sample commands for common tasks
- Working on a stable branch a list of git does and donts, ie don't rebase on a public branch, etc...
- line endings figured out re Bens comment
- Comitters - update with instructions for commit access
- Creating your own Module
- Hacking (change to How to take part)
- JD: Update the build procedure:
- Maven: a way to get git revision info from the build...
- Hudson: update the scripts to pull from git
- JD: Transition the repository - July 1st Weekend
- Contact github about the size of the repository; uDig experience shows this will be fine - but it is good to ask.
- Set up a GeoTools organisation (PSC members as group owners), with a group for commiter
- Do westart from the official github fork? YES (If we need to grab anything else we will do so on request)
- Make the old repository read only http://trac.osgeo.org/osgeo/ticket/913
- Turn on github
- JD: Transition comitters
- Grab the comitter list from OSGeo servers; send out an email asking for github IDs
- Create GeoTools PSC and GeoTools Committers Groups (uDig organisation is an example here)
- Add github IDs as appropriate
- JD: Transition the build machinery
- hudson configuration
- release scripts
- JD: Release 8.0-RC2 form the new repository to show we made it
- Update any of justin's automated scripts
- Update the how to cut a release page in the docs