SCPlugin for IntelMacで判明したように、現在のバージョンのSCPluginは
ssh経由でうまく動作しないようだ。パスワード認証のssh経由でうまく動作しないようだ。
もともとsvn+ssh経由で使っている間、操作時に毎回パスワード入力しなければならないのがめんどかった(
もしかして鍵認証ならSCPlugin動いたりしてパスフレーズ無しの鍵認証なら SCPluginで正常動作)し、svn+sshによる運用をやめる事にする。
となると、Apacheでmod_dav経由にするか、sshを使わないsvnserve経由のアクセス、と言う事になるのだが、ここは動作速度も速いsvnserveで運用する事にする。
svnserveをsshトンネルモード以外で運用する場合、
- inetd経由で起動 -- 必要な時のみ起動する
- Daemonモードで起動 -- 起動しっぱなし
のいずれかになる。リソースの無駄を省くためにもinetd経由で起動させる事とする。
さて、MacOS X 10.4以降は、他のUNIX環境のようなinetd/xinetdが無く、代わりにinitをも含めた、launchdという新設計のスーパーデーモンが使われている。
MacOS X Tiger: UNIXベース
Tigerではlaunchdのおかげで起動時間が短くなりました。launchdではデーモンの起動、終了および管理に統一されたフレームワークを使用するようになり、さらにinit、mach_init、System Starterおよび関連サービスを組み込むことにより高速起動を実現しました。
10.4の起動が従来より劇的に早いのはこのため。主流LinuxディストリやWindowsXP等に比べてもかなり早い。
svnserveをこのlaunchd経由で起動させる事とにする。
参考情報
launchdの設定ツールであるLingonはなかなか便利。今回もこれを使って設定する事とする。

※ちなみにLingonの現バージョンでは、/Library/LaunchAgents, /Library/LaunchDaemonsのディレクトリを先に作っておかないとエラーが発生し、新しい設定ファイルが作れないようだ。
1. Users/Daemonsを新しく追加。設定は以下。
<?xml version="1.0" encoding="UTF-8"?>
<!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>Debug</key>
<false/>
<key>Label</key>
<string>localhost.svnserve</string>
<key>OnDemand</key>
<true/>
<key>ProgramArguments</key>
<array>
<string>/opt/local/bin/svnserve</string> -- MacPortsでインストールされたもの
<string>-i</string>
<string>-r</string>
<string>/Users/Shared/svn</string> -- レポジトリのあるディレクトリをルートとして指定しておく
</array>
<key>ServiceDescription</key>
<string>Subversion Server</string>
<key>Sockets</key>
<dict>
<key>Listeners/tcp</key>
<dict>
<key>SockFamily</key>
<string>IPv4</string>
<key>SockServiceName</key>
<string>svn</string> -- /etc/servicesに記載のある名称、あるいは素のポート番号
<key>SockType</key>
<string>stream</string>
</dict>
<key>Listeners/udp</key>
<dict>
<key>SockFamily</key>
<string>IPv4</string>
<key>SockServiceName</key>
<string>svn</string>
<key>SockType</key>
<string>dgram</string>
</dict>
</dict>
<key>inetdCompatibility</key>
<dict>
<key>Wait</key>
<false/>
</dict>
</dict>
</plist>
2. Save & Reloadする(要管理者権限)
後はアクセスして動作するかどうかを確認して見れば良い。ちなみにLingonを使わない場合は上記の設定ファイルを/Library/LaunchDaemons/localhost.svnserve.plistとして保存し、
$ sudo launchctl load -w /Library/LaunchDaemons/localhost.svnserve.plist
すれば良い。
手元の作業コピーをsvn switch --relocateしたところ、SCPluginでの動作も良好のようだ。
12/29 追記
SCPluginがパスフレーズ無しの鍵認証で動作する事が分かった。どちらで運用していくか思案中。