MercurialをUbuntuにインストールし、Bitbucketにpushしてみた

SCMBootCampにGitで参加しようとしていたのですが、抽選になったようです。

ドキドキ…

SCMBootCamp in Tokyo3 へお申し込みの皆様

こんにちは。運営のきょんです。
SCMBootCampで今回使用したいただくDVCSが決定しましたので、ご連絡申し上げます。
今回は「Mercurial」での演習になります。
環境構築等よろしくおねがいいたします。

\(^o^)/

見事に抽選が外れました…
まあ、そんなことではめげません。
むしろ良い機会なのでMercurialを勉強してみます。

今回は、Mercurialをインストールし、Bitbucketにpushするところまで行ってみたいと思います。


・環境構築の参考にしたページ
UbuntuでMercurialを導入して、SSH経由でbitbucketを利用できるようにする - Syoichi's Tumblr

Mercurialのコマンドを参考
コマンド一覧 - [Mercurial/サーバー] ぺんたん info

そもそもMercurialとは?

Mercurial(マーキュリアル)は、クロスプラットフォームの分散型バージョン管理システムPythonで実装されている(ただし、バイナリdiffに関してはC言語で実装されている)。Mercurialはコマンドラインプログラムである。全てのコマンドは hgで始まる。これはmercuryが水銀を意味し、その元素記号がHgであることに由来する。 目標は、
高い性能とスケーラビリティ
サーバが不要な、完全に分散した共同開発環境
テキストファイルとバイナリファイルの両方を効率よく扱うこと
概念上はシンプルなままで、高度なブランチ機能とマージ機能を持つこと
である。またMercurialは完全なWebインターフェースを含んでいる。 原著作者はMatt Mackallで、現在も主要開発者である。

wikipedia:Mercurial
http://upload.wikimedia.org/wikipedia/commons/thumb/9/9a/New_Mercurial_logo.svg/150px-New_Mercurial_logo.svg.png

ふむふむ。
だからTL上に「水銀!水銀!」ってつぶやきがたまに現れるんですねー。
(知ってはいましたが 笑)

そもそもBitbucketとは?

BitbucketはMercurialまたはGitバージョン管理システムを使用したプロジェクトのための、ウェブベースのホスティングサービスである。Bitbucketは商用プランと無料アカウントの両方を提供している。2012年5月現在[1]、プライベートリポジトリを無制限に持てる無料アカウントを提供している (無料アカウントの場合、5 ユーザーまで使用できる)。ユーザーがプライベートリポジトリしか持っていない場合でも、プライベートリポジトリはプロファイルページに表示されず、ウェブサイト上には"このユーザーはリポジトリを持っていません"と表示される。このサービスはDjangoフレームワークを用いてPythonで書かれている。[2]

wikipedia:Bitbucket
http://upload.wikimedia.org/wikipedia/commons/1/1c/Bitbucket_logo_by_Atlassian_used_on_the_website.png

gitHubとは違い、無料でプライベートリポジトリが作れるんですね!しかも容量も無制限!
あまり自分にはメリットが感じられないですが、少人数(5人以下)でサービスを作っている人たちにはありがたいのかも?

環境構築

参考にしたページの手順ですんなり環境構築出来ました。
sshキーは作成済みだったので飛ばしました。

Mercurialのインストール
$ sudo apt-get install mercurial
Mercurialの設定ファイルを作成
$ vi ~/.hgrc


[ui]
username = Username <E-mail address>
ssh = ssh -C
Bitbucketを使ってみる

Bitbucketにアクセスし、流れに沿ってSign Upします。
f:id:tenten0213:20120717010759j:plain

f:id:tenten0213:20120717011050j:plain

次に、Account - SSH keysからSSHキーを登録します。
Labelは適当、SSH keyは、~/.ssh/id_rsa.pubの内容を貼り付けます。
f:id:tenten0213:20120717012536j:plain

f:id:tenten0213:20120717012239j:plain

あとは、リポジトリを作成すれば準備完了です。
今回は、testという名前でリポジトリを作成しました。
※キャプチャ取った時点で既にtestリポジトリ作ってしまっていたので、上のキャプチャにはtestリポジトリが出てきてしまっています。。。

f:id:tenten0213:20120717013451j:plain

以上で準備は完了です。


clone

Bitbucketから、さきほど作成したtestリポジトリをcloneします。

$ hg clone ssh://hg@bitbucket.org/xxxx/test
add

構成管理対象にするファイルを追加します。
今回は、test.htmlという名前でファイルを作成し、追加しました。

$ hg add test.html
commit

ファイルをローカルリポジトリにコミットします。

$ hg commit

$ hg ci

でコミット出来ます。
Mercurialはciでコミット出来る、と。

今回は、コミットメッセージ付き(-mオプション)でコミットしました。

$ hg ci -m "test commit"
push

コミットした内容をリモートリポジトリに反映します。

$ hg push

これでBitbucketのtestリポジトリにtest.htmlが追加されました。


今回は、SCMBootCampの準備として環境構築と、Bitbucketを利用出来るところまで行いました。
細かいことは、SCMBootCampに参加後またBlogに書きたいと思います。

SCMBootCamp楽しみ!