Mercurial&Bitbucketで分散バージョン管理

動機

分散バージョン管理システムといえばgit,リポジトリサービスといえばgithubだと思ってたんだけど、githubは無料版ではprivate repositoryを持てず、有料版は最低月$7からとちょっと高い。

そんなことを思ってる時に、無料でprivate repositoryを持てるBitBucketというサービスがあるということを聞いたのでさっそく使ってみた。

BitBucketはMercurialに対応した無料リポジトリサービス。分散バージョン管理システムやBitBucket以外のリポジトリサービスについてはこの辺を参照。

BitBucketの設定

アカウント作成
  • http://bitbucket.org/から"Sign up now"をクリック。
  • OpenIDでログイン可能なのでhatenaでログインしてみる
  • 次の画面で"A new account"のところで以下を入力
    • Screen name
    • Email
  • "Create my account"をクリック。これだけで完了。

ちなみに、OpenIDのアカウントとBitbacketのアカウントの紐付けは後から変更できるようだ。すでにアカウントを持っている場合はここで紐づけることができる。

レポジトリの作成
  • Repositories -> Create New
  • プロジェクト名、説明文などを入力して Create repository をクリック

で、レポジトリのトップ画面。

SSH Keyの登録

ローカルの設定、新規リポジトリの作成

Cygwinmercurial
新規リポジトリの作成
mkdir bitbucket
cd bitbucket
touch README.txt
hg init
設定ファイル

全体の設定は~/.hgrc、リポジトリ毎の設定は/.hg/hgrcに書く。
下記では、

  • ユーザ名の設定
  • sshで圧縮オプション
  • デフォルトのpush先

を設定している。

[ui]
username = John Doe <john@example.com>
ssh = ssh -C
[paths]
default-push=ssh://hg@bitbucket.org/user/repository_name/
管理対象外ファイルを指定する

/.hgignoreファイルに記述する。

  • .classファイル
  • .hgignore自身

を除外

syntax: glob
*.class
.hgignore

syntaxはglob(シェル)かregex(正規表現)

日々使うコマンド(commit, pushなど)

普段のコマンドオプションはgitと同様。この辺は使って覚える感じで。

hg add README.txt
hg commit -m 'first commit'
hg push

ここまでの使用感

  • オフラインでもコミットしたい、程度の使い方ならgitからの乗り替えコストはほとんどない
  • BitBucketはぱっと見githubよりわかりづらい。配色が微妙。
  • web上の情報はgitと比べると少ない
  • 初回起動が重い気がするが、それは実行環境の問題かな
  • Mercurialなのにhgってのが、コマンド打ったりググったりするとき引っかかる