Once in a while (yet often enough) it happens that I have to change an already pushed git tag. Usually because I violated my own naming scheme.
Yet I also somehow can’t keep the necesserry commands in mind:
git tag newTag oldTag
git tag -d oldTag
git push origin :refs/tags/oldTag
Basically it is just: copy/link newTag to oldTag, remove oldTag, delete remote oldTag.
Also see the git man page for further parameters.
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:
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
Get fast-export and convert your repo:
git clone git://repo.or.cz/fast-export.git
/path/to/hg-fast-export.sh -A ../authormap -r /path/to/MyHgProject
git checkout HEAD
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.
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
That’s it. You should now be ready to use Git!
Thanks to following sites hedonismbot, scrambled tofu