Subversionは、プログラムのソースコードをはじめ、各種ファイルの変更履歴を管理する集中型バージョン管理システムです。ソースコードの履歴を管理することで、「誰が」「いつ」「なぜ」「ファイル中どの部分を」「どのように」変更を加えたかをいつでも確認することが可能になります。第5回でご紹介した統合開発環境、NetBeansと連携し、円滑に業務を遂行できる開発環境を構築してみましょう。
バージョン管理システムとは
バージョン管理システムとは、コンピュータの上で作成・変種されるあらゆるファイルの変更履歴を管理するためのシステムです。ファイルの作成日時や、変更日時、ソースコードの変更履歴を永続的に保管・管理することで、ソースコードの過去の状態や変更内容をいつでも確認できるようになります。また、変更前の状態を復元といった操作も可能になります。
ソースコードのみならず、打ち合わせで使用した議事録のテキストファイルや、プレゼンに使用したPowerPoint、Excelファイルなどのドキュメントをバージョン管理の対象にできます。個人で使用するだけではなく、チーム間で情報を共有する際にも大変役立つ仕組みと言えるでしょう。
バージョン管理システムは大別すると、「集中型」「分散型」の2つに分類できます。今だと分散型バージョン管理システム、とくにGitがトレンドです。(「集中型」「分散型」の解説や違いについては各種バージョン管理システムのマニュアルや書籍をご参照ください)
今回は、
バージョン管理を覚えるための、最初のとっかかり部分が分散型バージョン管理より簡単
・運用、管理が簡単
・Windows環境でも簡単にサーバを構築可能
・Windowsに関連する日本語のマニュアルやドキュメント・書籍が充実している
・バイナリファイルの扱いに長けている
・日本語環境下でも複雑な設定をすることなく運用可能
上記の理由から、Subversionを使ったバージョン管理の手順について取りあげたいと思います。
なお、中央型・分散型の「どちらに優劣がある」「総合してどちらが簡単・難しいか」という事はありません。バージョン管理をおこないたいファイルの種類やプロジェクトの種類・参加者、使用ユーザのスキル、利用できるサーバ・クライアントの環境に応じて最適なバージョン管理システムを導入することが望まれます。
中央型・分散型どちらか片方のバージョン管理システムしか利用したことがないという方は、ぜひ両方の種類のバージョン管理システムに触れてみることをオススメします。
Subverisonとは
Apache Subversionとは、Apache Software Foundationが中心となり開発・リリースしているオープンソースソフトウェアのバージョン管理システムです。Apache License, Version 2.0のもとで公開されています。
Windows環境下における、代表的なSubversionサーバソフトウェアは次のとおりです。
・CollabNet
・SilkSVN
・VisualSVN
・WANdisco
・Win32Svn
ここではWindows 7 Professional環境下に、VisualSVNを使用したSubversionサーバを構築する手順をご紹介していきます。
バージョン管理システムの用語について
バージョン管理システムには、さまざまな用語や考え方が登場します。Subversionのインストール前に、これらの用語や考え方について簡単にご紹介します。
・リポジトリ (Repository)
・コミット (Commit)
・更新 (Update)
・リビジョン (Revision)
・取り消し (Revert)
・インポート (Import)
・チェックアウト (Checkout)
・マージ (Merge)
リポジトリ (Repository)
リポジトリとは、バージョン管理をおこなうファイルを格納するための器です。バージョン管理を使用するユーザは、このリポジトリに対してファイルの変更内容を参照・送信していきます。リポジトリはファイルのすべての変更内容を保持しており、任意のタイミングで以前の状態のファイルを参照・復元できます。
コミット (Commit)
コミットとは、自分が作業したファイルの更新をリポジトリに反映させる作業のことです。リポジトリにコミットすることで、自分の作業内容とリポジトリ内のファイル内容の差分をとり、差分だけがリポジトリに送信されます。
更新 (Update)
更新とは、リポジトリからファイルの変更内容を取得し、自分の作業環境に反映させる作業のことです。作業の衝突を避けるため、コミット前には更新をおこなう癖をつけましょう。
リビジョン (Revision)
リポジトリがコミットを受け付けると同時に、リポジトリ内のファイルシステムツリーの状態が新規に作成されます。これをリビジョンと呼びます。リポジトリを新規に作成した直後のリビジョン番号は 0 で、コミットをするごとに1ずつ大きくなっていきます。
取り消し (Revert)
取り消しとは、自分の作業内容をすべて取り消す操作です。間違った操作や編集をおこなった場合に使用します。
インポート (Import)
インポートとは、リポジトリにバージョン管理させたいファイルやリソースを登録する作業のことです。バージョン管理をおこなう際は、リポジトリにまずバージョン管理をおこないたいリソース群をインポートすることから始まります。
チェックアウト (Checkout)
チェックアウトとは、リポジトリからデータを取りだす作業のことです。通常、自分の作業環境に最初の1回だけデータを保存することを指します。
マージ (Merge)
マージとは、1つのファイルにおいて別々に加えられた変更を1つに統合する作業のことです。1つのファイルに対して複数のユーザが作業している場合、コミットと更新・マージを繰り返しながらファイルの修正をおこなっていくことになります。
必要なソフトウェアのインストール
VisualSVNをダウンロードし、インストールします。ダウンロードページにアクセスし、Windows用のインストーラをダウンロードします。執筆時の最新バージョンは、2.6.3です。
ダウンロードしたインストーラを実行し、インストールを開始します。
利用規約を確認後、[I accept the terms in the License Agreement]にチェックを入れて[Next]をクリックします。
インストールするコンポーネントを選択します。選択できるコンポーネントは次の2種類です。
コンポーネント | 内容 |
---|---|
VisualSVN Server and Management Console | VisualSVN Server本体と管理用のコンソールをインストールします |
Management Console Only | 管理用のコンソールのみをインストールします。別のマシンにVisualSVN Serverをインストールしてクライアントとしてコンソールを利用する場合、こちらのオプションを選択します |
ここでは[VisualSVN Server and Management Console]を選択しました。チェック後、[Next]をクリックします。
インストールするVisualSVN Serverの種類を決定します。[Standard Edition]を選択します。
VisualSVN Server本体と、リポジトリを配置するフォルダ、使用するポート番号を決定します。すべて初期値入力のまま、[Next]をクリックします。
上記の手順でVisualSVN Serverのインストール準備が整いました。[Install]をクリックして、インストールを開始します。
インストールが完了したら、[Start VisualSVN Server Manager]にチェックを入れて[Finish]をクリックし、インストーラを終了します。
続けてVisualSVN Server Managerが起動します。なお、VisualSVN Server Managerはスタートメニューからも起動可能です。
VisualSVN Server Managerの使い方
VisualSVN Server Managerは、VisualSVN Serverのユーザ・グループ管理や、リポジトリの管理をおこなうためのツールです。VisualSVNでファイルのバージョン管理をおこなう前に先立ち、これらの設定をおこなっておく必要があります。
ユーザの管理
Subversionでは、リポジトリにアクセスできる権限をユーザやグループごとに定義できます。社内向けのリポジトリはユーザ全員に対して読み書き、特定のプロジェクトに対しては、一部のユーザのみに対して読み書きを可能に、他ユーザは参照のみといった権限を割り振ることが可能です。
リポジトリにアクセスできるユーザを指定しておくことで、Subversionサーバにファイルをコミットする際に、ユーザIDとパスワードによる認証をおこないます。ファイルの変更履歴はユーザと紐付けられ、「どの時点で」「どのユーザが」「どのファイルを」「どのように変更したか」の情報が蓄積出来るようになります。
ユーザを追加するには、VisualSVN Serverのホーム画面に表示されている「Create new user」リンクをクリックします。ユーザ名とパスワード、確認用のパスワードを入力して新規にユーザを登録します。
リポジトリの管理
バージョン管理をおこなうための器、リポジトリを作成します。[Create new repository]リンクをクリックし、リポジトリ名を入力します。ここでは「NewProject」と入力しました。
作成するリポジトリの種類を、次の2種類から選択します。
リポジトリの種類 | 内容 |
---|---|
Empty repository | 空のリポジトリを生成します。推奨されているオプションです |
Single-project repository | リポジトリを1つのプロジェクトとして使用する際に使用します。リポジトリのルートディレクトリに、慣例である「trunk」「branch」「tag」ディレクトリを自動的に配置します |
ここでは[Empty repository]を選択しました。チェック後、[Next]をクリックします。
リポジトリにアクセスできるユーザを選択します。ここではSubversionに登録されているユーザがすべて読み書きのアクセスを可能にする[All Subversion users have Read / Write access]を選択しました。チェック後、[Next]をクリックします。
リポジトリの作成が完了すると、作成したリポジトリ名と、HTTPS経由でリポジトリにアクセスするためのURL、パーミッション設定が表示されます。
Webブラウザを起動し、https://localhost/svn/(リポジトリ名) にアクセスします。BASIC認証にSubversionに登録したユーザIDとパスワードの組みあわせを入力して、リポジトリを表示します。
次回は、統合開発環境「NetBeans」とSubversionとの連携について紹介していきます。
富田宏昭 Hiroaki Tomida
「株式会社キクミミ」でFileMakerやオープンソース言語などを用いた、Webアプリ開発 企業の業務改善のためのシステム開発や環境構築を行っている。主な著書に「HTML5/JavaScriptとPhoneGapで作るiPhoneアプリ開発入門」(マイナビ)など。