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() {}。

我还强烈建议您使用SVN PHP 扩展而不是 exec() 解析。它易于安装、使用和完美运行(根据我自己的经验)......

于 2013-05-13T16:32:30.977 回答