* Subversion [#qe044ddf]
バージョン管理ツールです。CVSに比べてバイナリファイルの扱いが簡単だったり、TortoiseSVN という GUI クライアントがかなり便利です。
** 環境 [#of53083c]
筆者が、以下の作業を行なった環境について、書きます。
- OS : Windows XP SP2
- Apache : 2.2.6
- Subversion : 1.4.6
- TortoiseSVN : 1.4.5
** TortoiseSVN [#p0f0fdf5]
Subversion の GUI クライアントです。
[[TortoiseSVN をダウンロード:http://tortoisesvn.net/downloads]]
上記のページで、TortoiseSVN 本体と Language Pack が入手できます。Language Pack はなくとも十分です。これまで、英語表示に慣れていると、日本語表示ではかえって混乱するかも。
インストール後は、さっそくリポジトリを作成して、バージョン管理を行なうことができます。
- [[SubversionTips]]
** サーバの作成 [#g2abc81a]
ローカル環境でバージョン管理を行なうのなら、TortoiseSVN のみで十分ですが、ネットワーク越しにアクセスを行なう場合、サーバを用意する必要があります。今回は、Apache2ベースのサーバを利用します。
- [[Apache 2 をダウンロード:http://www.apache.jp/]]
- [[Subversion をダウンロード:http://subversion.tigris.org/servlets/ProjectDocumentList?folderID=8100&expandFolder=8100&folderID=91]]
-- 上記ページは、Apache2.2 用です。Apache2.0 用は別のフォルダにあるので、ご注意ください
まず、Apache をインストールします。それから、Subversion を展開したら、bin フォルダのなかにある mod_dav_svn.so を、Apache の modules フォルダのなかに入れます。同じく Subversion の bin フォルダのなかにある dll ファイルを、Apache の bin フォルダのなかに入れます。既に存在している dll については、元のままで良いと思います。mod_dav_svn.so のみのコピーでは、「指定したファイルが見つかりません」とエラーになるはずです。
最後に、Apache の設定ファイルを修正します。conf/httpd.conf をエディタで開きます。まず、
LoadModule dav_module modules/mod_dav.so
という一行があるか、確認してください。コメントになっていた場合は、コメントを外してください。このモジュールは、先ほどの mod_dav_svn.so のフロントエンド側に相当します。
続いて、Subversion 用の設定を行ないます。下記のコードを、先述の dav_module のロードより後ろに、追加してください。よくわからない場合は、ファイルの末尾に追加すれば良いです。
<IfDefine SVN>
<IfModule !mod_dav_svn.c>
LoadModule dav_svn_module modules/mod_dav_svn.so
</IfModule>
<Location /svn>
DAV svn
SVNPath E:\svn_repos\tqa
</Location>
</IfDefine>
一番外側にある IfDefine は、起動時のオプションで、-DSVN があれば Subversion 用の設定を有効にするためのものです。起動オプションの設定については、スタートメニューから辿れる Control Apache Server 内にある各ショートカットを参考にしてください。ショートカットのリンク先に、起動オプションが書かれています([[参考ページ:http://www.cgi-club.com/im/main/club/pcweb/apache/restart.shtml]])
もし、常時 Subversion を有効にする場合は、起動オプションや IfDefine は不要です。
Location ディレクティブに書いてある /svn は、Subversion のリポジトリへアクセスするさいのパスです。この例の場合 "http://localhost/svn/" でアクセスできます。SVNPath では、実際のリポジトリがある場所を、指定します。パスの最後に \ を書くと、設定ファイルが正しく解釈されないので、注意してください。
*** Ubuntuの場合 [#ybbf1c9b]
Ubuntu でパッケージを使う場合は、下記のように簡単に設定ができます。
$ sudo apt-get install subversion
$ sudo apt-get install libapache2-svn
設定ファイルは、/etc/apache2/mods-available/dav_svn.conf にあります。基本的に、コメントアウトを外すだけで大丈夫です。認証に関する設定は、必要なければコメントのままで良いです。
複数のリポジトリを使いたい場合は、SVNParentPath を指定します。プロジェクトごとにrevision 番号を振り直したいときは、複数リポジトリが必要です。
** リポジトリの作成 [#a8b54a1e]
以下、ubuntu の場合の説明です。Windows の場合は、TortoiseSVN のGUI メニューをたどれば、できると思います。
下記のコマンドで、リポジトリが作成できます。
$ sudo svn-admin create --fs-type fsfs /home/svn
ファイル所有者を、apache の実行ユーザーに変更してください。/etc/passwd を確認すれば分かると思いますが、恐らく www-data:www-data です。
$ sudo chown -R www-data:www-data /home/svn
リポジトリにファイル群をインポートします。下記のようなリポジトリ位置を指定してください。インポート対象は、ディレクトリを指定すると、そのディレクトリ配下のファイルが登録されます。ディレクトリ自身は登録されません。
http://server/svn/repos_1/
** トラブルシューティング [#zb43bb7f]
- ローカル指定では上手くいったのに、Apache経由ではリポジトリが見つからない
-- そもそもApacheが起動しているか
-- SVNPathはリポジトリを指定しているか。リポジトリがあるディレクトリではなくて、リポジトリのディレクトリ自体を指定する必要がある
----
** 履歴 [#te8b47da]
- 2007/12/30 : bokupi 新規作成