Pear::VersionControl::VersionControl_SVN(3)

SVN.phpのrunメソッドにある$cmdをvar_dumpで監視してみると、

string(117) "C:\Program Files\Subversion\bin list --username  --password  --non-interactive svn://localhost/C:/home/repos/codegolf"

となっていることがわかった。

これでは動くわけがない。

ので

$options = array('fetchmode' => VERSIONCONTROL_SVN_FETCHMODE_ARRAY, 'svn_path' => "C:\Program Files\Subversion\bin\svn");

に書き換える。

すると$cmdは期待通り

string(117) "C:\Program Files\Subversion\bin\svn list --username  --password  --non-interactive svn://localhost/C:/home/repos/codegolf"

となった。

しかしこれでもうまく動いていないので、この文字列をDOSプロンプトに貼り付け直接実行してみる。

C:\home>C:\Program Files\Subversion\bin\svn list --username  --password  --non-interactive svn://localhost/C:/home/repos/codegolf
'C:\Program' は、内部コマンドまたは外部コマンド、操作可能なプログラムまたはバッチ ファイルとして認識されていません。

なるほど。
では、

$options = array('fetchmode' => VERSIONCONTROL_SVN_FETCHMODE_ARRAY, 'svn_path' => "\"C:\Program Files\Subversion\bin\svn\"");

これでどうよ!
動かず。
$cmdは

"C:\Program Files\Subversion\bin\svn" list --username  --password  --non-interactive svn://localhost/C:/home/repos/codegolf

をはき出している。

なのでこれをDOSプロンプトで実行してみると!

C:\home>"C:\Program Files\Subversion\bin\svn" list --username  --password  --non-interactive svn://localhost/C:/home/repos/codegolf
svn: ホスト 'localhost' に接続できません: 対象のコンピュータによって拒否されたため、接続できませんでした。

進展あり!!!!!!!!