2011年2月18日金曜日

VersionControl_SVN 再帰リスト 大嘘

VersionControl_SVN 再帰的フォルダリストの取得の説明を検索すると、
マニュアルの日本語訳?が出てくるけど、
そのコード
「リポジトリ内の現在のファイル一覧を再帰的に取得する」
  1. require_once 'VersionControl/SVN.php';  
  2.   
  3. // エラー処理を設定します -- 常にこのようにしておきましょう!  
  4. $svnstack = &PEAR_ErrorStack::singleton('VersionControl_SVN');  
  5.   
  6. // 実行時オプションを設定します  
  7. $options = array('fetchmode' => VERSIONCONTROL_SVN_FETCHMODE_RAW);  
  8.   
  9. // 方法その 1: オーバーヘッドを最小にする  
  10. // 必要なサブコマンドを個別に指定して svn オブジェクトを作成します  
  11. $svn = VersionControl_SVN::factory(array('list''log''blame'), $options);  
  12.   
  13. // 必要なスイッチや引数を定義します  
  14. $switches = array('username' => 'user''password' => 'pass');  
  15. $args = array('svn://svn.example.com/repos/TestProject');  
  16.   
  17. print_r($svn->list->run($args$switches));  
  18.   
  19. // 上の出力からファイルを取り出し、だれが何をしたのかを調べます  
  20. $args = array('svn://svn.example.com/repos/TestProject/trunk/index.php');  
  21.   
  22. echo "<pre>" . $svn->blame->run($args) . "</pre>";  
  23.   
  24. // 方法その 2: 使用できるすべてのコマンドを支配する  
  25. // 全サブコマンドを読み込む - オーバーヘッドが大きくなりますが、これが便利な場合もあるでしょう。  
  26. $svn = VersionControl_SVN::factory('__ALL__'$options);  
  27.   
  28. // さあ、必要なコマンドはなんでも実行できます ...  
  29. $svn->cat->run($args$switches);  
  30. $svn->info->run($args$switches);  
  31. // ... などなど。  
これじゃ、できません!!
できないソースを単純に訳しただけのページの多いこと多いこと、
まあ、悪いことじゃないけど、実際にやろうとする人は惑わされます
  1. $switches = array('username' => 'user''password' => 'pass','R' => true);  
にします。

0 件のコメント:

コメントを投稿