0

だから基本的に私はこれを行うことができるようにしたい:

        /*
            Runs command and checks return code of last command run. Throws SVN exception if non-zero status code is returned. The output of the command otherwise.
        */
        public static function runCommand($cmd)
        {
            //Redirect error to stdout
            $cmd .= " 2>&1";

            $output = array();
            exec($cmd, $output, $status);
            $output = implode("\n", $output);

            if($status != 0)
            {
                            //custom exception class - nonimportant
                throw new SvnException($output);
            }

            return $output;
        }

問題は、svn add既にバージョン管理されているディレクトリを追加しようとするとエラーと見なされるため、エラー ステータス コードが返されることです。「ディレクトリが既に存在する」場合、コマンドを探しsvn addてエラーを無視するためにハックを入れずに、この問題を修正する方法はありますか?

具体的には、フォルダーがバージョン管理下にあるかどうかを確認するために使用できる SVN コマンド、またはsvn addディレクトリが既にバージョン管理下にある場合にエラーを返さないように使用できる引数があります。

4

2 に答える 2

1

ディレクトリが存在するかどうかをsvnに尋ねることができます。add関数を模倣したい場合はsvn、例外をスローして、呼び出し元に処理させます。ディレクトリがすでに存在するときにサイレントにしたい場合は、ここにチェックを追加します。

于 2013-05-13T16:03:10.437 に答える
0

その特定のエラーの SVN 出力を解析し、その場合に if() {} を追加できます。

また、exec() 解析の代わりにSVN PHP extensionを使用することを強くお勧めします。インストール、使用、完全に動作するのは簡単です(私自身の経験から)...

于 2013-05-13T16:32:30.977 に答える