Use the power of git to develop with both git and svn
Sun 27 December 2009 by Thejaswi PuthrayaI was one of the thousands who jumped on to Google Code when it was released sighing a relief that Sourceforge was no more a Hobson's choice.
But very soon github was released and showcased git's amazing power. Again like the thousands, I too switched but this time I really wanted to mirror the github changes to Google Code rather than orphan the repo. This would ensure that I could utilize the power of git (mainly local branches for development).
So here is a step by step procedure of how to go about it (mainly as an archival purpose after having struggled for more than two hours). You need to have git-svn installed to be able to fetch the changes from google code for the initial code:
# Clone the google code svn repo first
$ git svn clone https://<google_code_project_url>/trunk checkout_name --username=<google_username>
$ cd checkout_name
# Add a remote to github and fetch
$ git remote add -f -m master git_origin git@github.com:<username>/<git_project.git>
# Track the 'master' remote branch on github
$ git branch -t github remotes/git_origin/master
// Make the changes in the master repo (say)
# Commit from the local 'master' branch to google code
$ git svn dcommit
# Move to the local 'github' branch
$ git checkout github
# Merge the changes from master into github
$ git merge master
# Push the changes to github
$ git push
Not very difficult but slightly cumbersome to repeat! Google Code offers mercurial support but I have not had an opportunity to work it.