Google Code shut down a year ago, and recently also their “Migrate to Github” feature was disabled.
Because I have/had also a old project hosted (and some people where asking about it recently), I had to find a way on how to migrate the project to Github anyway.
I did these steps
# download the svn dump'ed repo wget https://storage.googleapis.com/google-code-archive-source/v2/code.google.com/spring-security-facelets-taglib/repo.svndump.gz # unzip gunzip repo.svndump.gz # create the repo svnadmin create /tmp/testgc # restore it svnadmin load /tmp/testgc/ < repo.svndump # launch a local svn daemon svnserve --foreground -d # in another terminal, clone your repo now using git svn (optionally create a authors file for correctly mapping to git usernames) git svn --stdlayout -A authors.txt clone svn://localhost/tmp/testgc/ # go into the cloned repo cd testgc/ # add the upstream github repo git remote add origin https://github.com/domdorn/spring-security-facelets-taglib.git #push it git push --set-upstream origin master #till now, we only have the trunk / master branch # get atlassians svn-migration-scripts.jar from https://bitbucket.org/atlassian/svn-migration-scripts/downloads wget https://bitbucket.org/atlassian/svn-migration-scripts/downloads/svn-migration-scripts.jar # run the scripts and expect the suggested actions java -Dfile.encoding=utf-8 -jar svn-migration-scripts.jar clean-git # if you like what you see (usually you do..), perform the actions java -Dfile.encoding=utf-8 -jar svn-migration-scripts.jar clean-git --force # after this i had a branch structure like this: git branch -a # * master # remotes/origin/0.2_nate # remotes/origin/0.4_gblaszczyk # remotes/origin/jsf-1.2-spring-2 # remotes/origin/jsf-1.2-spring-3 # remotes/origin/jsf-2.0-spring-2 # remotes/origin/jsf-2.0-spring-3 # remotes/origin/master # remotes/origin/site # remotes/origin/site@17 # remotes/origin/tags/0.1 # remotes/origin/tags/0.3_jsf-1.2-spring-2 # remotes/origin/tags/0.3_jsf-1.2-spring-3 # remotes/origin/tags/0.3_jsf-2.0_spring-2 # remotes/origin/tags/0.3_jsf-2.0_spring-3 # remotes/origin/tags/0.5 # remotes/origin/trunk # checkout each branch (except tags and trunk) and push it for i in `git branch -r | grep -v 'tags\|trunk' `; do git checkout ${i/origin\// }; git push; done # push the branches git push --all origin # checkout each tag and create a tag with the same name for i in `git branch -r | grep 'tags'`; do git checkout $i; git tag ${i/origin\/tags\// }; done # push the tags git push --tags origin
Thanks to @chrsmith for responding quickly to my google code email (4 minutes, wow!) and telling me about how to download the repo in the svn dump file format.
Thanks to Atlassian for their svn migration scripts
You can see the result of this work at my Spring Security JSF Taglib Github Project.
1 Response to How to recover a Google Code SVN Project and migrate to Github
Migrate Archive Google Code SVN to Git | Yeangshing
April 20th, 2017 at 09:38
[…] https://dominikdorn.com/2016/05/how-to-recover-a-google-code-svn-project-and-migrate-to-github/ […]