読者です 読者をやめる 読者になる 読者になる

Mercurial + Bitbucket = 最高!

はじめに

Mercurial リポジトリホスティングサービス『Bitbucket』が、容量無制限&プライベートリポジトリ作り放題になっていました。

似たようなサービスでは、Git リポジトリホスティングサービス『GitHub』が有名ですが、こちらは無料アカウントだとプライベートリポジトリが作れません。容量も現時点で 300MB までと制限されています。

無料アカウントで出来ることは、Bitbucket が圧勝ですね。
f:id:griefworker:20110302202132p:image

前からプライベートリポジトリが欲しかったので、Bitbucket に飛びついてみました。

Mercurial を導入します

Mercurial をインストール

公式サイトからダウンロードしてインストールします。

Windows で Cygwin を使っている場合は、Cygwin のパッケージをインストールしましょう。Python または Devel のカテゴリに分類されています。

GUI で操作したいなら TortoiseHg もアリです。Mercurial も一緒にインストールされます。

私は最近コマンドラインに目覚めたので、hg コマンドを使います。

.hgrc を作成

Mercurial では、設定ファイルにユーザー名を記述しないと、ファイルをコミットできません。ホームディレクトリ*1に .hgrc ファイルを作成しましょう。

.hgrc の内容は下記の通りです。

[ui]
username = ユーザー名 <メールアドレス>

Bitbucket を試してみます

Bitbucket のアカウントを作成

下記のページからサインアップします。

OpenID に対応しているので、既に Google や Yahoo! などのアカウントを持っている場合、それを使うと良いです。

OpenID でサインアップする場合でも、アカウント名を決める必要があります。

サインアップしたら、リポジトリに push するときに使うパスワードが発行されます。ログイン後に管理ページで覚えやすいパスワードに変更しておくといいです。

プライベートリポジトリを作成

[Repositories] のドロップダウンメニューから [Create new repository] を選択します。
f:id:griefworker:20110302201440p:image

リポジトリの名前や説明を入力し、[Private] にチェックを付け、[Create repository] をクリックすれば作成完了。
f:id:griefworker:20110302201441p:image

ファイルをプッシュしてみる

作成したプライベートリポジトリに、適当なファイルをプッシュしてみます。

:: プライベートリポジトリをローカルにクローン
hg clone https://bitbucket.org/アカウント名/リポジトリ名

cd リポジトリ名

:: 適当なファイルを作成
echo "test" > test.txt

:: リポジトリに追加
hg add test.txt

:: 変更をコミット
hg commit -m "First commit."

:: コミット内容を Bitbucket にプッシュ
hg push https://bitbucket.org/アカウント名/リポジトリ

clone と push を実行すると、アカウント名とパスワードを聞かれるので、サインアップしたときに発行されたものを入力します。

Bitbucket のリポジトリを開いて、ちゃんとファイルが保存されていたら成功です。後はじゃんじゃんプライベートリポジトリを作成して、どんどんWebサービスを開発していきましょう。なにせ無料ですから。

まとめ

運営している Web サービスのソースコードは公開したくないけど、自分のマシン以外の場所にもバックアップしておきたい、そんなときにプライベートリポジトリが欲しくなります。

GitHub では有料プランでないとプライベートリポジトリを作れませんが、 Bitbucket なら無料で作り放題です。

また、Bitbucket では無料アカウントで5ユーザーまでプライベートリポジトリを共有できるので、少人数での開発にも使えます。

GitHub から Bitbucket に完全移行…といきたいところですが、せっかく作った GitHub アカウントを使わないのももったいない。いくつかソースコード公開していますし。

Web サービスのソースコードは Bitbucket、オープンソースなプロジェクトは GitHub という風に使い分けると良さそうですね。

*1:Windows なら C:/Users/ユーザー名/