The little I can contribute to this discussion, as a small-time developer in Rosetta, is that Rosetta was transferred from Subversion to git (on GitHub) about a year and a half a go. The workflow that was decided was creating a branch for each contribution, pull request when its ready, testing in a (very cool)
testing server (which interfaces quite well with GitHub to fetch pull requests marked as ready for testing, and sends feedback to GitHub about their testing status) and then merging tested pull-requests into master. I joined the project about the time of the transition, so other people can attest more to difficulties, and how it affected code development, but as far as I can tell, the project flourished as contributing to code became easier and less intimidating ("what if I break master" --> "I can do anything on my own branch"), and the master branch became far more stable, both thanks to the great GitHub interface, the git infrastructure and speed, and the workflow aspect.
Hope this helps.