如何在远程服务器上使用php删除本地工作副本上隐藏的.svn文件夹?取消链接()权限被拒绝
我的如何在远程服务器上使用php删除本地工作副本上隐藏的.svn文件夹?取消链接()权限被拒绝,php,svn,Php,Svn,我的SVN存储库包含多个项目。每个项目都包含相同的结构,看起来像trunk->doc->log.txt。此日志文件包含修订之间所做的更改。 目前,我创建了一个php脚本,在运行服务器构建时执行。此php脚本将签出服务器本地目录中的log.txt文件C://../../../../doc/log.txt 它写入该文件,然后提交更改。当有人使用另一个项目运行服务器构建时,就会出现此问题。它试图将该项目的log.txt文件签出到同一目录中,我得到一个svn错误。提交更改后,我不再需要本地目录中的签出文
SVN
存储库包含多个项目。每个项目都包含相同的结构,看起来像trunk->doc->log.txt
。此日志
文件包含修订之间所做的更改。
目前,我创建了一个php
脚本,在运行服务器构建时执行。此php脚本
将签出服务器本地目录中的log.txt
文件<代码>C://../../../../doc/log.txt
它写入该文件,然后提交更改。当有人使用另一个项目运行服务器构建时,就会出现此问题。它试图将该项目的log.txt
文件签出到同一目录中,我得到一个svn错误
。提交更改后,我不再需要本地目录中的签出文件。我能想到的唯一选择是在签出新文件夹之前删除doc文件夹(仅在我的本地目录中,而不是repo中),以便以前的log.txt
不再存在
我发现了一个递归算法
,它删除了所有带有unlink()
的文件和带有rmdir
的目录。该算法运行良好。不幸的是,隐藏的.svn
文件没有取消链接()
,并出现权限拒绝错误。在所有文件和父目录上使用fileperms()
会返回16895
,在octall
中转换为40777
,因此我相信他们拥有完全权限。但我相信用户的权限没有修改/写入权限。是否有适当的方法删除我的服务器工作副本上隐藏的.svn文件夹
?或者,如果有人能想出更好的方法来做到这一点。因此,如果AprojA/doc/log.txt
已经在本地目录中,并且我签出了BprojB/doc/log.txt
。有没有办法用另一个项目的日志文件签出并覆盖现有的log.txt
--力参数似乎对我没什么作用
我也有一个模糊的想法,也许是用-depth=empty检查顶级svn回购。然后svn只更新每个项目的日志txt文件。因此,不要使用
签出->提交更改->删除。我可以让所有的log.txt
文件都可用。但问题是它们都有相同的文件夹和文件名(doc/log.txt)
。对这一切还是比较新的,所以我非常感谢任何形式的反馈。u可以使用通配符删除扩展名为的日志文件。因此,将删除选定文件夹下具有相同扩展名的所有文件