Git ミラーを作る
posted by Steve Losh on November 9, 2009
Mercurial のような分散バージョン管理システムの中では、 恐らく Git が最も有名でしょう。 Mercurial を使っているなら、そのプロジェクトの Git ミラーを作るのは訳もないことです。 Git ユーザーが貢献できるようにね!
hg-git のインストール
まず、 hg-git プラグインをダウンロードする必要があります:
easy_install dulwich
hg clone http://bitbucket.org/durin42/hg-git/
ダウンロードしたら、次の行を ~/.hgrc ファイルへ追加しましょう:
[extensions]
hggit = /path/to/hg-git
GitHub のアカウントを作る
Git ミラーの置き場が必要でしょう。 それには GitHub が最適です。さぁ、まだアカウントを持っていないなら、 GitHub に サインアップ しましょう。
GitHub にリポジトリを作る
さて、 GitHub のアカウントができたので、 「New Repository」ボタンを押してリポジトリを作りましょう。
新しいリポジトリを作ると、このようなページを目にすることと思います:
git@github.com:username/project.git という URL がありましたか? これを忘れないように。
あなたがミラーを push する時に必要です。
プロジェクトを push する
さて、 hg-git のインストールが終わり、 GitHub にプロジェクトのリポジトリができたところで、
Mercurial リポジトリを GitHub へ push する必要があります。まず、
Mercurial リポジトリの .hg/hgrc ファイルを編集し、次のように Git の URL を追加します:
[paths]
git = git+ssh://git@github.com/username/project.git
要注意: github.com の次の : を / (スラッシュ)
へ置き換える必要があります。 リポジトリパスの扱い方を Mercurial に合わせるためです!
言うまでもないですが、 username と project
も適当な値へ置き換えてください。
さぁ、後は git パスへ push するだけで、ミラーのできあがりです:
hg push git
これには数秒かかります。特に大きいリポジトリの場合はね。
完了すると、 100% 機能する Git ミラーが http://github.com/username/project/
にできあがります。 Git ユーザーはあなたのプロジェクトを
git clone git://github.com/username/project.git で clone でき、
あなたが Mercurial を使っていることにはきっと気づかないでしょう。
パッチを受け取る
Git ユーザー向けにミラーを作るのはとても素敵なことですが、 (あなたのプロジェクトがとにかく目にとまるものであれば) ゆくゆくは誰かから GitHub の pull リクエストを受け取ることになるでしょう。
hg-git では Git ユーザーからの貢献を扱うのも簡単です。 まず、貢献者のフォークをあなたのプロジェクトのパスに追加します:
[paths]
git = git+ssh://git@github.com/username/project.git
contributor = git+ssh://git@github.com/contributor_username/project.git
ここでも、 github.com の次の : を / (スラッシュ) へ置き換えるのを忘れないように!
次に、変更をあなたの Mercurial リポジトリへ pull します:
hg pull contributor
このとき、あなたのリポジトリがどうなったか(それで、マージが必要かどうか)確認するには、 graphlog が使えます。
必要であれば(で、そうしたければ)マージし、貢献者の変更をメインの Mercurial リポジトリと Git ミラーへ push します:
hg push
hg push git
ここでは基本を取り上げました! ブランチをたくさん作るワークフローをとっていれば、 事はもう少し複雑でしょう。それでも、この Tip は Git ユーザーからパッチを受け取る時にきっと役立つことでしょう。
