我有一个设置,其中管理员需要能够编辑.phtml文件。但是,由于文件都在subversion控件下,我想在编辑后使用PHPSVN提交文件。
生产服务器是CentOS。当我使用svn2web时,我将我的工作副本与名为 / home / working-copies 的目录中的实际文件系统分开。
每个文件都可以通过表单中的textarea进行编辑。当用户提交表单时,textarea的内容将使用file_put_contents写在工作副本文件上。
理想情况下,该文件将通过svn_commit提交。但是,而不是提交我得到“未找到”的错误。如果我再次尝试保存/ svn_commit,则会出现“尝试锁定已锁定的目录”的错误。该文件已成功覆盖,但提交失败。
然后我必须手动(通过命令行)执行svn清理。当工作副本解锁时,我也能够成功手动提交。
我一直无法找到“未找到”错误的任何文档,但我确信它来自svn_commit。我也确定提交文件的尝试是锁定目录的。
我不确定如何进一步调试此问题,我感谢任何输入。谢谢。
编辑(2013-07-23) 虽然我还没有设法使用PHPSVN扩展来解决问题,但我能够使用exec()。这是我使用的语法,以防将来帮助任何人:
// The flags used help get around any SSL certificate errors.
exec('cd /home/working-copies/testfolder; svn commit "test.phtml" --username "username" --password "pw" --no-auth-cache --non-interactive --trust-server-cert -m "test svn" 2>&1', $output, $returnStatus);
// Print the output to help debug.
if ( $returnStatus )
{
print_r($output);
}
我仍然对使用PHPSVN时遇到的“未找到”错误感到非常好奇,所以我会打开这个问题以期找到答案。再次感谢。