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' に接続できません: 対象のコンピュータによって拒否されたため、接続できませんでした。
進展あり!!!!!!!!