Mercurial を bitbucket で使う際のTips
PyCon JP 2011 でTrekサイン入りTシャツをゲットされた @troter さんからPython忘年会でお誘いをうけ、Mercurial Advent Calendar 2011 に参加することになりました。ということで、20日目の記事を書きます。
bitbukectでの便利な使い方を紹介します。
前段階
当社では、SubversionからMercurialに数年前に乗り換えました。新規プロジェクトから徐々に移行をしていましたが、現在はほぼ全てのプロジェクトでMercurialを使っています。
初期は、社内サーバの1台で中央サーバ的な役割を行なっていましたが、現在は bitbucket を利用しています。
bitbucket は有料会員となっています。有料会員になると、プライベートレポジトリへのアクセスが出来る人の人数を増やすことができ、当社では現在25人枠を持っています。
プライベートレポジトリの数に制限が無いことから、客先向けの案件でも気軽に使うことができます。
TracやRedmineをイシュー管理に使い、コミットとの連携などを行う事があると思います。 ソースコードコミットに、refs #12 とかをコメントに書いておくと、イシュートラッカーと連携してくれるというやつです。
bitbucketのissueツールと、Mercurialコミットを連携させる方法もあります。
準備
まず、プロジェクトを作る時に、issueを使う(Issue cracking をチェック)するか、作成後のプロジェクトであれば、Adminタブから、Issue tracker settings にて、Private tracker 又は Public trackerを選択します。これで、issueシステムが使えるようになります。
次に、Admin画面から、 Services にて、プルダウンメニューで、Issues を選択し「Add Service」を行います。(添付画像の右矢印の様になります)
ここまでできたら、イシューを追加しておきます。
コミット時の使い方
ソースコードをコミットする際に、 【制御文字】と #IssueNo をメッセージとして入れておき、コミットします。その後、Pushした際に、bitbucket上に展開されます。
これを行うと、 "メイン機能完成 fixes #1" と書いておくと、自動的に No.1のイシューがcloseされます。
制御文字は、 完了時の"fixes"や関連を付ける"refs" などあります。詳細は、下記のページにセットアップ方法も含めて書かれています。
http://confluence.atlassian.jp/pages/viewpage.action?pageId=25133102
最後に
bitbucketに移行してから、オープンなソースコードの管理も社内のソースコード管理も同じ場所に並んでおりシームレスに使えて便利です。またサーバのメンテも不要なのでそれもひとつのメリットだと感じています。
gitが一般的にメジャーになっていますが、しばらくはMercurialをメインに使っていこうかと思っています。なお、bitbucketでは、gitのサポートも始めています。
と、雑感を書きましたがいかがでしたでしょうか?
普段Pythonを使っている身としては、もっとMercurialが流行ってくれるといいなと思っています。
次は、いつもPython系イベントで吠えているイメージが強い、 @aodag 先生のようです。MercurialにもGitにも詳しいと思うので、いろいろと違いや良いところを教えてくれるとうれしいです。