バージョン管理システムSubversionのインストール
# インストールされているか確認 rpm -qi subversion # インストール yum install subversion
xinetd経由でsvnserveデーモンを起動させるための設定方法。 ここではローカルネットワーク内からのアクセスのみを許可する条件で設定を行う。
まずsvnserve用のユーザを作成する。
useradd svn
次に、リポジトリを格納するためのディレクトリを作る。
mkdir /var/repos chown svn:svn /var/repos
xinetdの設定をするために、/etc/xinetd.d配下にsvnserveというファイルを作成し、下記のような内容を書き込む。
service svnserve
{
disable = no
socket_type = stream
wait = no
user = svn
server = /usr/bin/svnserve
server_args = -i -r /var/repos
log_on_failure += USERID
only_from = 192.168.0.0/24 127.0.0.1
}
設定項目の意味は次の通り。
/etc/hosts.allowに下記の内容を追記し、内部ネットワークからの接続のみを許可する。
svnserve : 192.168.0. 127.0.0.1
/etc/servicesを編集して、サービス名と使用ポート番号を追記する。 追加する位置は任意だが、「Unregistered but useful/necessary other services」のあたりに追加しておくとよい。
#
# Unregistered but useful/necessary other services
#
:
:
(中略)
svnserve 3690/tcp # Subversion
svnserve 3690/udp # Subversion
:
:
既に/etc/servicesに次のような記述があった場合は、svnをsvnserveに書き換えること。
:
:
svn 3690/tcp # Subversion
svn 3690/udp # Subversion
:
:
また、iptablesなどを使ってファイヤーウォールの設定がされている場合は、3690番のポートを忘れずに空けること。
続いて、chkconfigコマンドを使ってsvnserveを起動できるようにする。
# svnserveを起動するようにする chkconfig --add svnserve # 設定が反映されているか確認する chkconfig --list svnserve
上記のコマンドを打ったあと、次のように表示されればOK。
svnserve: on
起動設定が整ったところで、xinetdを再起動する。
service xinetd restart
telnetを使ってsvnserveに接続して次のように表示されればOK。
# telnet localhost 3690 Trying 127.0.0.1... Connected to localhost.localdomain (127.0.0.1). Escape character is '^]'. ( success ( 1 2 ( ANONYMOUS ) ( edit-pipeline ) ) )
まずはリポジトリを作る。 ここではsampleというリポジトリを/var/reposに作成する。
# svnになる su svn # svnadminコマンドを使って svnadmin create /var/repos/sample
続いて、リポジトリのアクセス設定を行う。 リポジトリを作成すると自動的にconfディレクトリが作成される。 その中にsvnserve.confとpasswdの二つの設定ファイルを作成する。
svnserve.confではアクセス設定などを行い、passwdではパスワードを設定することができる。 まずはsvnserve.confの設定例。
[general] anon-access = none # Anonymous(匿名)ユーザのアクセスを許可しない auth-access = write # 認証済みユーザには書き込み権限を与える password-db = passwd # パスワードファイルをpasswdとする realm = sample repository # リポジトリの説明(適当でOK)
anon-access、auth-accessに設定できる値は次の三つ。
つづいて、passwdの設定例。 「ユーザ名=パスワード」の形式で記述する。
[users] santamarta=password hoge=hogehoge
passwdファイルの編集が終わったら、アクセス権限をsvnだけに設定して、他のユーザからアクセスできないようにする。
cd /var/repos/sample/conf chmod 600 passwd chown svn:svn passwd
TortoiseSVNの使い方。
TortoiseSVNの設定ファイルを編集することで、ファイルをリポジトリに追加する時点で自動的に属性を付与させることができる。 これにより「$Date: 2008-03-31 20:56:09 +0900 (月, 31 3月 2008) $」などが自動的に日付に展開されるようになる。 また、拡張子からMIMEタイプを判断させるようにすることも出来る。 以下はその設定方法。
まずエクスプローラ上で右クリックし、メニューからTortoiseSVN→Settingsの順に選択。 続いて出現する画面からGeneralを選択し、「Subversion configuration file」の横にあるEditボタン(赤い矢印の部分)をクリックする。
テキストエディタが開いて設定ファイルの内容が表示されるので、次の内容を書き込む。
[miscellany]
enable-auto-props = yes # 自動的に属性をつけるようにする
[auto-props]
*.cpp = svn:keywords=Id Date Rev Author # 拡張子が.cppの場合は、コミット時に
# Id, Date, Rev, Authorの各キーワードを展開する
*.h = svn:keywords=Id Date Rev Author
*.png = svn:mime-type=image/png # 拡張子が.pngの場合は、MIMEタイプをimage/pngに設定する
*.jpg = svn:mime-type=image/jpeg
*.bmp = svn:mime-type=image/bmp
*.psd = svn:mime-type=image/x-photoshop
*.ico = svn:mime-type=image/x-icon
この設定をした上で、たとえばファイル中に「$Id: index.xhtml 13 2008-03-31 11:56:09Z santamarta $」と書いておくと次のように展開されるようになる。
$Id: index.xhtml 13 2008-03-31 11:56:09Z santamarta $
$Idのあとに続けて、順に「ファイル名、リビジョン番号、最終変更日時、最後に変更を行ったユーザ」の各値が展開される。