UPDATE: Mac OS X 10.7 (Lion) Serverでもこの方法で動きました。
UPDATE: Mac OS X 10.6 (Snow Leopard) Serverでもこの方法で動きました。
Mac OS X Server 10.5 Leopard Serverをホストとして、svnserveを使ってSubversionのサーバーをセットアップする方法について簡単に説明します。
Subversionはソースコードやドキュメントなどのファイル/ディレクトリのバージョン管理ツールです。ローカルでの利用の他、サーバーをセットアップすればネットワーク経由で複数のクライアント間でのファイル/フォルダを同期することができ、非常に便利です。
本ドキュメントは、Mac OS X Server 10.5 Leopard Serverをホストとして、svnserveを使ってSubversionのサーバーをセットアップする方法について簡単に説明します。セキュリティ対策やsshを組み合わせる方法、Subversionそのものの使用方法については書いておりませんが、筆者が参考にした書籍をこのページの後半に記載しました。
なお、Mac OS X Serverは上記にあります通り、10.5 Leopard Serverを対象としています。それ以外のバージョンでは状況が異なる可能性があります。
本ドキュメントに記述した方法以外の方法として次のドキュメントがあります。
Mac OS X ServerでのSubversionのセットアップ
しかし上記のドキュメントに書かれている方法はLeopard Serverでは利用することができません。
クライアントソフトについては次のドキュメントをご覧ください。
ファイル、フォルダのバージョン管理を効率的に、Subversionクライアントソフト(マニュアル進行中)
Mac OS X Serverについて
Mac OS X ServerはMac OS XをベースにしたサーバーバージョンのOSです。設定ツールが分かりやすくできており、導入する際の敷居が低いサーバー OSです。
インストール
Leopard ServerにはSubversionは標準でインストールされていますので、インストール作業はありません。
リポジトリの作成
ターミナルから次のようにしてリポジトリを作成します。
svnadmin create path-to-repository
例えば、/svnreposにリポジトリを作成する場合は次のようにします。
mkdir /svnrepos
svnadmin create /svnrepos
launchdの設定
svnへの接続要求があったときに、svnを起動するように設定する設定ファイルを作成します。/Library/LaunchDaemonsディレクトリに「org.tigris.svn.plist」というファイル名で次の内容のファイルを作成します。
<!DOCTYPE plist PUBLIC "-//Apple Computer//DTD PLIST 1.0//EN"
"http://www.apple.com/DTDs/PropertyList-1.0.dtd">
<plist version="1.0">
<dict>
<key>Disabled</key>
<false/>
<key>Label</key>
<string>org.tigris.svn</string>
<key>ProgramArguments</key>
<array>
<string>/usr/bin/svnserve</string>
<string>-i</string>
<string>-r</string>
<string>path-to-repository</string>
</array>
<key>inetdCompatibility</key>
<dict>
<key>Wait</key>
<false/>
</dict>
<key>Sockets</key>
<dict>
<key>Listeners</key>
<dict>
<key>SockServiceName</key>
<string>svn</string>
</dict>
</dict>
<key>OnDemand</key>
<true/>
</dict>
</plist>
赤字の「path-to-repository」の部分をリポジトリへの絶対パスに置き換えます。
ファイルを作成したら、次のようにしてファイルのオーナーとグループを設定します。
sudo chown root:wheel /Library/LaunchDaemons/org.tigris.svn.plist
後は、launchdに読み込ませます。
sudo launchctl load /Library/LaunchDaemons/org.tigris.svn.plist
sudo launchctl start org.tigris.svn