Mac OS X 10.8 安裝 SVN Server

自從買了新的 2012 Late Mac Mini 之後
就開始將舊的 資料 搬到 新機器上
不過發現無法啟動 SVN server on apache2 web server
後來發現 原來是 Mac OS X 10.8 把 mod_dav_svn.so 給拿掉了… 很奇怪耶?
只好自己 compile 再補回去 …

首先,先確認 Mac OS X 10.8 內建的 SVN 版本

$ svn --version
svn, version 1.6.18 (r1303927)
   compiled Nov  2 2012, 23:47:41

Copyright (C) 2000-2009 CollabNet.
Subversion is open source software, see http://subversion.apache.org/
This product includes software developed by CollabNet (http://www.Collab.Net/).

The following repository access (RA) modules are available:

* ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
  - handles 'http' scheme
  - handles 'https' scheme
* ra_svn : Module for accessing a repository using the svn network protocol.
  - handles 'svn' scheme
* ra_local : Module for accessing a repository on local disk.
  - handles 'file' scheme

接下來要下載 相同版本的 SVN source code,並重新 Compile 後
將所缺少的 module 補回去

$ cd ~/Download
$ wget http://archive.apache.org/dist/subversion/subversion-1.6.18.tar.bz2
$ tar -jxvf subversion-1.6.18.tar.bz2
$ cd subversion-1.6.18
$ ./configure
$ make
$ sudo cp subversion/mod_dav_svn/.libs/mod_dav_svn.so /usr/libexec/apache2/
$ sudo cp subversion/mod_authz_svn/.libs/mod_authz_svn.so /usr/libexec/apache2/

接下來,建立 /etc/apache2/other/svn.conf

$ vi /etc/apache2/other/svn.conf
LoadModule dav_svn_module /usr/libexec/apache2/mod_dav_svn.so
LoadModule authz_svn_module /usr/libexec/apache2/mod_authz_svn.so
<Location /svn>;
    DAV svn
    SVNParentPath /PATH-TO-SVN-REPOSITORY
    SVNListParentPath on
    AuthType Basic
    AuthName &quot;Subversion repository&quot;
    AuthUserFile /etc/apache2/svn-auth-file
    Require valid-user
</Location>;

記得變更 svn repository 的 權限

$ chown -R www:www /PATH-TO-SVN-REPOSITORY

重新啟動 Apache

$ sudo apachectl restart