I had one last Mercurial project that I still actively developed. Everything new I’ve completed restarted with Git but this was a last hold out.
$ git push origin master
remote: error: refusing to update checked out branch: refs/heads/master
! [remote rejected] master -> master (branch is currently checked out)
error: failed to push some refs to '/home/mirandam/git/project'
After some trial and error, the following steps worked exactly how I expected.
- My Git projects are in ~/git (where the converted project will end up)
- My Mercurial projects are in ~/hg (this is where the project to be converted will live)
- I use ~/work as my working directory (where I clone, checkout, etc.)
- I use ~/tmp as just a scratch temporary directory
[mirandam@atlas ~]$ mkdir ~/git/project-new
[mirandam@atlas ~]$ cd ~/git/project-new
[mirandam@atlas project-new]$ git init --bare
[mirandam@atlas project-new]$ cd ~/tmp
[mirandam@atlas tmp]$ git clone git://repo.or.cz/fast-export.git
[mirandam@atlas tmp]$ cd ~/work/
[mirandam@atlas work]$ git clone ~/git/project-new
[mirandam@atlas work]$ cd ~/work/project-new
[mirandam@atlas project-new]$ ~/tmp/fast-export/hg-fast-export.sh -r ~/hg/project-old
[mirandam@atlas project-new]$ git checkout HEAD
[mirandam@atlas project-new]$ git push origin master
Now in my work directory I can perform changes and continue working.