Subversion導入手順

出典: Wikimura

プログラムを書いていると、これまで動いていたものがあるとき動かなくなることがあります。 こんなとき、さかのぼろうにも上書きしてしまってどうにもならないとか、正しく戻したつもりが漏れがあるとか...とにかくソースコードの管理というものは、記憶と人の手に頼るとどうしてもミスが生じるものです。 共同で開発する場合は、コントロールを保つこと自体難しいものです。


バージョン管理システムはこうした問題を解決するためにあります。 バージョン管理システムは、あらゆるファイルやディレクトリ構造の現在の状態だけでなく、これまでの変化も記憶している、特殊なファイルシステムのようなものを管理します。この「特殊なファイルシステムのようなもの」はリポジトリと呼ばれます。


利用者は、リポジトリから手を加えたいファイルを「チェックアウト」して手元にコピーを作ります。 手を加えたら、これをリポジトリに反映する操作「コミット」を行います。利用者が作業中、別の利用者も同様にチェックアウトすることができ、コミットも行えます。


バージョン管理システムが力を発揮するのは、同じファイルに対して別々の利用者が変更を行い、反映するときです。普通は後から変更を保存した利用者のファイルが、完全に上書きされてしまうでしょう。しかし、バージョン管理システムは、利用者のコミット前に行われた変更を把握しており、衝突が無い限り「変更箇所のみ反映」してくれます。衝突がある場合は手動で変更の反映を設定できるつくりになっています。


この辺の詳しいことについては、公式サイト[1]やバージョン管理システムの解説[2][3]を参照してください。


ここでは、バージョン管理システムのサーバとして有名なSubversion(以下SVN)と、そのクライアントであるTortoiseの導入について記します。一般にこうしたツールはコマンドラインツール群で構成されるのですが、Windowsの場合GUIが用意されています。


ちなみに、回路CADのAltiumもSVNのバージョン管理を利用する機能があります。AltiumからSVNを操作する方法については別途記述します。

目次

インストール

自分でバージョン管理の環境を構築するには、SVNサーバとSVNクライアントが必要です。 (既にあるバージョン管理システムを利用するだけなら、SVNクライアントがあれば充分です)

ここではWindowsで利用できるSVNサーバ「VisualSVN Server」と、SVNクライアント「Tortoise」のインストールについて説明します。とはいっても、インストーラ付なのでほとんど書くことがありません...


VisualSVN Serverのインストール

VisualSVN Serverは、Subversionのバイナリディストリビューションの一種です。 他のバイナリディストリビューションと異なり、GUIからサーバを設定できるため、非常にとっつきやすいです。

手順

  • 公式サイトダウンロードページを開く
  • インストーラをダウンロードする
  • インストール設定を行う
    1. インストール先
    2. リポジトリの設置先
    3. サーバのポート番号

以上でインストールできます。リポジトリの設置場所やポート番号は後で設定可能です。

VisualSVN


Tortoiseのインストール

TortoiseはWindows用SVNクライアントで、ExplorerのコンテキストメニューからSVNの操作が行えるようになります。

手順

これだけです。設定すべきことは多分ありません。 再起動をすると、コンテキストメニューにSVNクライアント機能が追加されます。


SVNサーバの設定

ここでは、Subversionインストール後に行う基本的な事柄、リポジトリ作成やユーザ作成などについて記述します。 ただ、これらの設定の前にファイルサーバにリポジトリを置く方法を説明します。 というのも、先にこの設定をしておかないと、ファイルの移動が面倒だからです。


リポジトリ設置場所の設定

リポジトリは始めに書いたとおり、ファイルとディレクトリ構造の現在と過去の状態を記憶している「ファイルシステムのようなもの」です。これが破損してしまうと全部失ってしまうので、なるべく安全な場所に設置したいところです。そこで、木村研究室にあるファイルサーバPC「File-server」で各メンバに割り当てられた領域にリポジトリを設定したいと思います。

各メンバの領域は、「\\File-server\name」でアクセスできるはずです。例えば、私に割り当てられたファイルサーバの領域は、「\\File-server\morita」です。ちなみに、パスワードで保護されていますので他の人はアクセスできません。

手順

  1. VisualSVN Server起動
  2. ツリービューから[VisualSVN Server]選択した状態で右クリック
  3. [Properties]選択
  4. [General]タブ選択
  5. [Repositories Root]設定
    • [Browse]で目的の場所へ移動し、選択する
    • 割り当てられた領域直下ではなく、いくつかディレクトリを設けた方が良い
  6. OKを押す

以上で自動的にApacheが再起動します。(ApacheはHTTPサーバ。SVNのリポジトリを表示する機能を提供してくれる) 通常はこれで良いのですが、ファイルサーバへのアクセス権を保持しているのは普段使用しているアカウントなので、別途設定が必要です。

  1. [コントロールパネル]->[パフォーマンスとメンテナンス]->[管理ツール]->[サービス]を起動
  2. [VisualSVN server]をダブルクリック
  3. [ログオン]タブを選択
  4. [アカウント]を入力
    • 参照ボタンを押す
    • [選択するオブジェクト]のところに、その時点で使用しているWindowsのユーザアカウント名を入力
    • OKを押す
  5. パスワード欄にアカウントのパスワードを正しく入力
  6. OKを押す

これでApacheがファイルサーバへアクセスできるようになるはずです。 (確認は後でやります)


リポジトリを作る

VisualSVN serverでは、GUI経由で[Repositories Root]で定めたディレクトリ以下にリポジトリを作ることができます。

手順

  1. VisualSVN Server起動
  2. ツリービューから[Repositories]選択した状態で右クリック
  3. [新規作成]->[Repository]を選択
    • [Create Repository]でも同じ
  4. [Repository Name]を入力
    • チェックボックスは、リポジトリで慣例的に作られるディレクトリ[trunk],[branches],[tags]を作るかの設定
    • これらのディレクトリは作らなくてもよい
  5. OKを押す
リポジトリ作成


ユーザを作る

リポジトリを作ってもユーザを作らないと操作できません。

手順

  1. VisualSVN Server起動
  2. ツリービューから[Users]選択した状態で右クリック
  3. [新規作成]->[User]を選択
    • [Create User]でも同じ
  4. [User name]を入力
  5. [Password]を入力
    • なるべく分かりにくく、大文字・小文字・数字が入っていると好ましい
  6. [Confirm password]に[Password]と同じ内容を入力
  7. OKを押す


グループを作る

この後にアクセス権の設定を行うのですが、一人ずつ設定するのは手間がかかります。 そこで、まとめてアクセス権を設定するために「グループ」があります。 ユーザを複数ひとまとめにして、一括してアクセス権を設定できるようになります。

手順

  1. VisualSVN Server起動
  2. ツリービューから[Groups]選択した状態で右クリック
  3. [新規作成]->[Group]を選択
    • [Create Group]でも同じ
  4. [Group name]を入力
  5. メンバ追加
    • [Add]ボタンを押す
    • [Users]や[Groups]から既存のユーザやグループを選択
    • OKを押す
    • ShiftやCtrlキーで一度に複数選択可能
  6. OKを押す


アクセス権の設定

リポジトリまたはそのサブディレクトリに対して各ユーザがどれだけのアクセス権を持つか設定することで、ようやくサーバの準備が整います。

手順

  1. VisualSVN Server起動
  2. ツリービューからアクセス権を設定したいリポジトリを選択した状態で右クリック
  3. [Property]を選択
  4. [Security]タブを選択
  5. リスト下の[Add],[Remove]ボタンでユーザやグループの追加・削除を行う
  6. リスト内のユーザ・グループを選択した状態で[Permissions]を選択
    • Inherit from parent(サブディレクトリについて設定可能...親の設定を引き継ぐ)
    • No Access(アクセス拒否: アクセスしようとするとForbiddenになる)
    • Read Only(読み込みだけ許可)
    • Read/Write(読み書き許可)
  7. OKを押す
アクセス権設定


動作確認

VisualSVN ServerはApacheにより、ブラウザからリポジトリを見ることができる機能を提供してくれます。 「"https ://サーバ名:ポート番号/svn/リポジトリ名/"」(空白文字を取り除くこと)でアクセスできます。

このURLの[svn]間での部分は、VisualSVN Serverのツリービューで[VisualSVN Server]を選択していると、右側の[Status]に表示されます。 リンクになっているので、クリックすればブラウザが立ち上がります。 URLの末尾にリポジトリ名を追加すれば以下のようなページが開くはずです。

アクセス権設定


SVNクライアントの操作

SVNクライアントTortoiseは、Explorerのコンテキストメニューから操作できます。 詳しくは参考文献[6]を参照してください。丸投げします。


コメント

  • とりあえずファイルサーバで使用できるように設定できれば、しばらくは安泰です。どこかの工事業者が電線を切って停電が起きたりしなければ...
  • svnsyncという機能を使えば、リポジトリの同期を取ることができるそうです。これを使えば自宅のPCでバックアップできるようになり、より安全になるはずです。これについては今後調べます。

参考文献

  1. バージョン管理システム: Subversion
  2. SVNBook非公式日本訳
  3. SVNBook日本語版その2
  4. Subversionサーババイナリディストリビューション: VisualSVN Server
  5. Subversionクライアント: Tortoise
  6. Tortoiseの使い方
個人用ツール