BitBucket と TortoiseHg で快適分散型バージョン管理生活

f:id:wwwcfe:20110201002717p:plain

分散型バージョン管理システムは Git と Github の組み合わせが人気ですが、個人的に BitBucket が気に入ったので基本的な設定や注意点などをメモしておきます。

対象

  • 個人開発でソースコードのバージョン管理をしたい人
  • プライベート開発したい人。
  • Windows環境で開発したい人など。

なぜ BitBucket か

  • プライベートレポジトリを無制限に作成できる
  • 5ユーザーまでは無料プランを利用できる
  • プロジェクト Wiki や問題追跡システム (Issue tracking system) が利用できる

などが主な理由です。Mercurial レポジトリしか選択できませんが、Git や Bazzar と比べても機能的ほとんど差が無いのであまりこだわっていません (大規模開発なら話が違ってくるかもしれませんが)。単純に BitBucket 使いやすいと感じたので利用しようと思い、必然的に Mercurial を選択したという感じです。
他の候補としては GithubAssembla などを考えていましたが、Github はプライベートレポジトリが有料で数も制限あり、Assembla プライベートレポジトリを作れますが Wiki や問題追跡システムが有料ですので、私個人的な用途では気軽に使えるという感じがしませんでした。

Mercurial の基本

  • レポジトリを作成するか、クローンする
  • 作業ディレクトリでソースコードを変更する
  • レポジトリに作業ディレクトリの内容をコミットする
  • コミットした内容を別レポジトリからプルするか、別レポジトリにプッシュする
    • BitBucket で使うので、最終的には BitBucket 上のレポジトリにプッシュする

BitBucket に登録

BitBucket にユーザー登録してレポジトリを作成します。このレポジトリがリモートレポジトリになります。プライベートレポジトリにするには「Private」をチェックします。後で変更することも可能です。レポジトリを作成すると Wiki の編集や Issue の登録ができます。


BitBucket にレポジトリを作成したら、TortoiseHg を使ってクローンするか、ローカルレポジトリを新たに作成して後で BitBucket 上のリモートレポジトリにプッシュします。

TortoiseHg の設定

ローカルにレポジトリを作成したらエクスプローラーの右クリックから「TortoiseHg」->「Repository Setting」でレポジトリの設定をします。
「同期ツール」にリートレポジトリを追加します。BitBucket のレポジトリ URL をコピーしてきて「URL」の欄にペーストします。パスワードの入力が面倒であればパスワードも設定します。「デフォルトにする」でデフォルトのリモートレポジトリに設定しておきます。

そして「コミット」->「ユーザー名」に BitBucket のユーザー名を入力します。ユーザー名は何でもいいですが、BitBucket のユーザー名にしておくと BitBucket のレポジトリブラウザで閲覧した際にコミッターのプロフィールページへリンクされます。(別の名前にしても後でBitBucket のレポジトリ管理画面から「Custom Username Aliases」を開いて BitBucket ユーザー名とコミット時のユーザー名を関連づけることができます)
次に「Issue Tracking」の設定で以下のように設定します (user_name と project_name を変更します)

Issue Regex #(\d+)\b
Issue Link http://bitbucket.org/user_name/project_name/issue/{1}/

これによってコミットメッセージに #1 などと書くと、BitBucket の Issue Tracker にリンクされます。

基本的な設定はこれくらいで OK です。

注意点

ソースコードUTF-8 で保存します。Shift_JIS などは BitBucket のレポジトリブラウザからは正常に閲覧できません。
マージで KDiff3 を使うならあらかじめ KDiff の設定でファイルのエンコーディングを指定しておく。TortoiseMerge や WinMerge を使った方がいいかも。

コードを書く

あとはひたすらコードを書いてコミットして、最終的に BitBucket 上のレポジトリにプッシュしていきます。プルやプッシュするときは、レポジトリをエクスプローラーで開いて右クリックから「TortoiseHg」->「Synchronize」を開き、「同期ツール」で設定したリモートレポジトリを選択します。

最後に

個人でプライベートな開発するなら今のところ BitBucket が優秀だと思います。プライベートレポジトリで Wiki や問題追跡システムが利用できるのは本当にありがたいです。
もちろんパブリックな開発でも十分に強力なサービスですので、BitBucket の選択は「あり」だと思います。