My Octopress Blog

A blogging framework for hackers.

Convert to Git From Hg

Mercurial + bitbucket でホストしている趣味のプロジェクトがいくつかあるのですが、全部 github でやれば良いよねってことで、コンバートできるかぐぐってみました。

Convert Mercurial project to Git – Stack Overflow http://stackoverflow.com/questions/16037787/convert-mercurial-project-to-git

  1. mercurial のプロジェクトを git に移行したい。コミット履歴もそっくりそのまま移行したい。 hg 関連のファイルを消して、 git init して、git add したけどコレじゃ履歴が引き継がれない。 解決策ない?

  2. fast-export 使え

hg インストール

作業は、hgの入っていないLinuxマシンにて行う。(fedora-19)

python がなければ必要かも。

1
sudo yum install hg

リポジトリをとってくる

1
hg clone ssh@hg@bitbucket.org/USERNAME/PROJECT hg_repo

fast-export をとってくる

1
git clone git://repo.or.cz/fast-export.git

新しいリポジトリを作り、hg からインポート

ローカルは

1
2
3
4
git init git_repo
cd git_repo
/path/to/fast-export/hg-fast-export.sh -r /path/to/hg_repo
git checkout HEAD

リモートにリポジトリを作り、マージして push

リモートは github から create repository して

1
2
3
4
5
git remote add origin git@github.com:USERNAME/git_repo.git
git fetch
git merge origin/master
git status # if you feel uneasy
git push origin master