今回のテーマは「バージョン管理」

バージョン管理というと、プログラマー向けの用語に感じるかもしれない。だが、実際にはそのようなことはない。むしろ一般のPCユーザや家庭でのPC利用についてもバージョン管理があると生産性が大きく変わってくるのだ。まず第一にバックアップとしての役割がある。HDDは不意に壊れる場合があるが、バージョン管理システムを使ってバックアップをとっておけば、いざというときに容易に復旧できる。

もう一つは履歴を追えるという役割だ。ちょっとした修正を行なったときに、前に書いてあった文字を忘れてしまうことはよくある。PC内で普通に使うファイルは常に最新版だけが保存されていく。過去に何が書いてあったかはわからない。だが、バージョン管理ツールを使えばいつ行なった修正かがすぐにわかり、さらに以前のバージョンに戻して利用することもできる。

最後は各バージョンのファイルを比較できるという点だ。いわゆる差分(Diff)を使えば、何を修正したかがひと目で分かる。もちろん、バイナリファイルの場合は難しいが、テキストファイルであれば簡単だ。ひとりの場合も便利だが、複数人や複数の拠点(オフィスと自宅など)で作業をする場合にメールで送り合うよりもよっぽど効率がよい。

今回はそんな「バージョン管理」を活用できるWebアプリケーション、オープンソース・ソフトウェア(OSS)を紹介したい。これらを使って今すぐバージョン管理を使ってみよう。

今回紹介するOSS・Webアプリ
Beanstalk』 Web2.0風なリポジトリサービス
Unfuddled』 ブラウザベースのプロジェクト管理
VisualSVN Server』 Apache+Subversionを手軽にインストール・管理
TortoiseHg』 分散型リポジトリのWindows向けクライアント



ブラウザから簡単にリポジトリ作成

名称 Beanstalk
URL http://beanstalkapp.com/

『Beanstalk』はWebブラウザからユーザ登録を行なうだけで自分専用のリポジトリ(データを格納する場所)を作成してくれるWebサービスだ。Beanstalkの特徴は何よりもその手軽さにあるといえる。わずか数分でバージョン管理を始めることが可能だ。

「Beanstalk」のトップページ。ユーザ登録すればすぐにバージョン管理が利用できる

無料の範囲ではリポジトリは20MBまで、ユーザは3人まで、作成できるリポジトリはひとつとなっている。だが、個人的なデータの中でバージョン管理を行いたいと思うものはそれほど多くない。本当にバージョン管理したいものだけであれば、20MBで十分だろう。上位のサービスとしては、$15/月で250MBまで拡張できる。

リポジトリの名前は任意に決められる。既存のリポジトリをインポートすることも可能

3人のユーザまで適用できるので、小規模なチームでリポジトリを共有できる。各ユーザには読み込みのみ、または書き込みも可能にするかのパーミッションが設定できる。さらにこのBeanstalkの特徴として、Beanstalk自体はバージョン管理のみの提供に徹し、その他の機能はWeb APIを通じて別のサービスと連携している点が挙げられる。例えばBasecampやFogBugz、Lighthouse、Twitter、Campfireと連携ができるようになっている。まさに今風のサービスといえそうだ。

Web上では日本語が文字化けてしまうのが残念な点。Diffも利用できる




フリーで使えるWebベースのプロジェクト管理

名称 Unfuddled
URL http://unfuddle.com/

『Unfuddled』はBeanstalkに比べるとちょっと大掛かりになる。UnfuddledはいわゆるWebベースのプロジェクト管理アプリケーションで、その一機能としてバージョン管理システムを提供している。ファイル管理として使うよりも小規模なプロジェクトを展開したほうが楽しめるかもしれない。

「Unfuddle」のトップページ。ユーザ登録するだけでプロジェクト管理が開始できる

Unfuddledも無料、有料と分かれている。無料で200MBのストレージ、ユーザは2名、ノートブックは3ページまでという制限がある。上位版は$9/月で512MBなので、Beanstalkよりおトクかもしれない。機能としてはプロジェクト管理がメインになるので、メッセージ、マイルストーン、トラブルチケット、ノートブックといった機能が提供されている。

プロジェクト管理のダッシュボード。機能はすべてタブから選択できる

バージョン管理と連携したブラウザベースのプロジェクト管理としてよく使われるのが「trac」であるが、Unfuddledはそのtracを立ち上げる手間を軽減してくれるようなサービスだ。小規模なプロジェクトであれば十分な機能が提供されている。個人的、または数人でのサービス開発などに利用してみるのも面白そうだ。

リポジトリブラウザも付属している。作成したテキストファイルはバイナリと判定されてしまい表示できなかった




Windowsではじめるバージョン管理システム

名称 VisualSVN Server
URL http://www.visualsvn.com/server/

現在、オープンソースのバージョン管理のシステムとして一般的によく使われているのがSubversionではないだろうか。そのSubversionをごく簡単にセットアップでき、さらに管理インタフェースまで提供してくれるのが『VisualSVN Server』だ。なお、Subversionはオープンソースだが、VisualSVN Server自体はフリーウェアなのでご注意いただきたい。

VisualSVN ServerはWindows向けのインストーラが提供されるソフトウェアで、ApacheとSubversionを一括してインストールしてくれる。HTTPでSubversionにアクセスでき、さらにその管理がGUIでできるという魅力がある。

管理画面。リポジトリの内容が閲覧できる

GUI管理インタフェースはWindows標準搭載の「コンピュータの管理」に統合される。その画面からリポジトリを作成したり、ユーザを作成したりすることができる。リポジトリの閲覧も可能で、ファイル単位でアクセス制御までできるようだ。

Apacheからリポジトリにアクセスしたところ。SSLが利用できる(自己証明なので警告が出る)

SubversionはCUIのソフトウェアではあるが、Windows環境下ではやはりGUIのほうが使い勝手がよいだろう。また、そのほうが一般ユーザであっても便利に使い始められる。手軽にSubversionを触ってみたい方にはオススメのソフトウェアだ。

ファイル単位でアクセス制限を設定できる




今年ブレイクしそうな分散型リポジトリのWindows向けクライアント

名称 TortoiseHg
URL http://sourceforge.net/projects/qct/

最後はちょっと趣向を変えて。今年伸びると思われるのが分散型リポジトリシステムだ。中央集権的なサーバを必要とするSubversionやCVSのようなバージョン管理ではないので、手軽に導入できる。コミットが各クライアントで行なえ、あるタイミングでマージしていくスタイルは、ネットワークの常時接続を必要とせず、なかなか快適だ。

コンテクストメニュー(右クリックメニュー)からリポジトリが作成できる

そしてそんな分散型のバージョン管理システムとしてMercurialがある。このソフトウェアの利点は、Windowsクライアントが存在する点だ。『TortoiseHg』はそのひとつで、Subversionで有名なWindows向けクライアントであるTortoiseSVNのようにMercurialを管理できるようになる。

ファイルを追加しているところ。画面は簡素だがきちんと動作する

右クリックからリポジトリをコピーして始められるのは手軽で便利だ。また機能的に洗練されていない面もあるが、非常に便利なソフトウェアといえる。なお、Mercurial自体はPythonのスクリプトであり、CGIとして動作させればホスティングサービスなどを使っても動作させられるのが魅力だ。

差分(Diff)。日本語が文字化けしてしまうので注意

いかがでしたか?

さあ、バージョン管理を始めてみようという気になっただろうか。例えば、日々更新しているTodoを書いたファイルや自宅に送っておきたいファイルなど何でもよい。そうしたファイルをバージョン管理に入れて日々管理しはじめると、新しいPC活用法が見えてくるはずだ。もちろん、システム開発を行っているならば、そのソースファイルはバージョン管理しておくべきだろう。

バージョン管理は何も技術者だけのものではない。過去において間違って上書きしてしまった、HDDが壊れてしまった……そんな経験を味わったことがある方にもオススメだ。

著者プロフィール
MOONGIFT 中津川 篤司(なかつがわ あつし)
1978年生まれ。オープンソース紹介サイト「MOONGIFT」管理人。プログラマ、SE、ITマネージャを経て、オープンソースのビジネス活用を推進する。現在は独立し、Webサービスのコンサルティング、プロデュースを行う。