「Subversion」の導入

Ubuntuに「Subversion」を導入する。
この時、一緒に「WebDAV」も導入する。
なお、「WebDAV」の導入には「Apache」が必要だが、「Apache」の基本的な設定は終わっているものとする。

「Subversion」のインストール

「Subversion」のインストール

[kaz@Ubuntu ~]$ sudo apt-get install subversion

モジュールのインストール

「Apache」のモジュールで「Subversion」関連で必要なものをまとめてインストールする。

[kaz@Ubuntu ~]$ sudo apt-get install libapache2-svn libapache2-mod-encoding
「Apache」の設定

「Apache」の設定

設定ファイルは全てコメントアウトされている為、以下のように必要な設定を記述する。

[kaz@Ubuntu ~]$ sudo vi /etc/apache2/mods-available/dav_svn.conf <= 設定ファイルの編集
<Location /svn>
DAV svn

以下のどちらかを指定
SVNPath /var/lib/svn
SVNParentPath /var/lib/svn
SVNPathは一つのリポジトリを指定している。
よって複数のリポジトリを管理する場合、都度追加する必要がある。
SVNParentPathはリポジトリの親ディレクトリを指定する。
その為、都度追加する必要はないが、アクセスする時はリポジトリ名まで指定する。

アクセス制限の設定
AuthType Basic
AuthName "Subversion Repository"
AuthUserFile /etc/apache2/dav_svn.passwd
アクセス制限の内容によって、以下のどちらかを指定
・閲覧以外制限をかけたい場合
<LimitExcept GET PROPFIND OPTIONS REPORT>
  Require valid-user
</LimitExcept>
・閲覧も制限をかけたい場合
Require valid-user

</Location>

パスワードの設定

[kaz@Ubuntu ~]$ sudo htpasswd -c /etc/apache2/dav_svn.passwd kaz
New password: <= kazのパスワード入力
Re-type new password: <= kazのパスワード入力(確認)

モジュールの有効化

「WebDAV」関連とエンコーディングのモジュールを有効化する。

[kaz@Ubuntu ~]$ sudo a2enmod dav
[kaz@Ubuntu ~]$ sudo a2enmod dav_fs
[kaz@Ubuntu ~]$ sudo a2enmod encoding

「Apache」の再起動

「Apache」を再起動して設定を反映させる。

[kaz@Ubuntu ~]$ sudo /etc/init.d/apache2 restart
「Subversion」の作業

ここでは最低限必要なコマンドのみ記述する。

リポジトリの作成

ここではリポジトリの内部データの設定にfsfsを指定している。
他には、「Berkeley DB」を指定する bdb が利用可能。

[kaz@Ubuntu ~]$ sudo svnadmin create /var/lib/svn --fs-type fsfs

インポート

カレントディレクトリにあるtestディレクトリをインポートする場合。

[kaz@Ubuntu ~]$ svn import test file:///var/lib/svn/test -m "first"

チェックアウト

testリポジトリをカレントディレクトリにtestという名前でチェックアウトする場合。

[kaz@Ubuntu ~]$ svn checkout file:///var/lib/svn/test test

ファイルの追加

testディレクトリにあるhoge.txtを追加する場合。

[kaz@Ubuntu test]$ sudo svn add hoge.txt

リポジトリのコピーを更新する

[kaz@Ubuntu test]$ svn update

コミット

上記のhoge.txtをコミットする。

[kaz@Ubuntu test]$ sudo svn commit README -m "add hoge.txt"

作業コピーに加えられた変更点の確認

[kaz@Ubuntu test]$ svn status

エクスポート

完成したものとして".svn"ディレクトリを作成せず、取得する。

[kaz@Ubuntu test]$ svn export file:///var/lib/svn/test

ヘルプの表示

[kaz@Ubuntu test]$ svn help

helpに続いてコマンドを入力すると、そのコマンドのヘルプが表示される。
例えば、commitのヘルプを表示する場合。

[kaz@Ubuntu test]$ svn help commit
▲ページのトップへ