I have converted yet another googlecode Mercurial repository to Git – and as it took me (again) a bit too much time, here is my recipe:
Prepare
Log into a Linux shell (Windows will hardly work – at least it didn’t work for me). If you don’t have some remote shell, download an Ubuntu VM and fire it up (you might need to install VirtualBox if you haven’t installed it already).
Check out your HG repo:
hg clone https://code.google.com/p/MyHgProject/
Check if you have to remap some author information:
hg log MyHgProject
If you want/have to remap, simple create an author map file
oldemail@example.com=Firstname Lastname
Convert
Get fast-export and convert your repo:
git clone git://repo.or.cz/fast-export.git
mkdir new_git_repo
cd new_git_repo
git init
/path/to/hg-fast-export.sh -A ../authormap -r /path/to/MyHgProject
git checkout HEAD
Push
Now change the source setting in your google code repository to git and push the local codebase:
git remote add origin https://code.google.com/p/MyHgRepo/
git push --all
At this point, your upload might fail with something like “error: RPC failed; result=35, HTTP code = 0”.
This can happen if your upload takes too long and this is a documented bug.
I simply solved this issue by pushig the git repo from a shell with a fast enough upload speed as my local connection obviously was too slow.
Wiki
Now you might realize that you have “lost” your complete wiki – don’t worry, it’s still there!
Switch back your repo setting to Mercurial and repeat the process for your wiki which you can usually find at https://code.google.com/p/yourProjectName/source/checkout?repo=wiki
That’s it. You should now be ready to use Git!
Thanks to following sites hedonismbot, scrambled tofu