GitBucket
すごいね。Mercurial 使いとしては git/hg 両対応の Kallithea
が気になるところだが、Pythonライブラリが多すぎて断念。
※2018-11-12追記
Kallithea 簡単に入った
さて、普段の開発環境を Mercurial に保ったまま GitBucket の公開リポジトリとリンクする方法。前提としてはこんな感じ。
ちなみにMercurialでブランチを分けずに使っていたら手順を飛ばしてよい。
まず非標準 extension の hg-git が必要。hg-git には dulwich が必要。両方入れておく。
hg-git では git ブランチと、Mercurial ブックマークを対応付けるので、 Mercurial でブランチを利用してた場合はブックマークに紐付ければよい。 以下の説明では、GitBucket リポジトリへのSSH接続設定が完了しているとする。
先にGitBucketのWeb UIで New Repository を作る。その URL が user@remote-git:/user/repo だとする。
既存の Mercurial リポジトリのクローンを作りそこで GitBucket との連繋をはかる。
hg clone /existing/repo ./repo-git cd repo-git
既存の Mercurial ブランチが default(公開版) と dev(開発版) だったとする。これをそれぞれブックマーク master, devel に対応付ける。ブランチとブックマークは同名にできない。
hg bookmark -r default master hg bookmark -r dev devel
これで準備OK。
hgのpush先を登録しておく。.hg/hgrc の paths セクションをいじる。
[paths] default = user@remote-git:/user/repo.git
default= でなくて git= とかにしておいてもよいだろう。おもむろに push!
hg push
push できたら GitBucket の Web UI から確認してみる。 2つのGitブランチができているはず。
その後の操作の注意としては
というのがポイントである。後者については、公開版にマージするときに 以下のようにするということである。
hg up -C master # (これは hg up -C default でも可) hg merge dev # (hg merge devel(ブックマーク名) ダメ)
いずれにせよ、hgブランチを残し続けたい場合は ブックマークとブランチの対応をしっかり確認取り続けないとあぶない。