繁体   English   中英

如何使用远程服务器上的 php 删除本地工作副本上的 hidden.svn 文件夹? Unlink() 权限被拒绝

[英]How can I delete the hidden .svn folder on my local working copy using php on a remote server? Unlink() permission denied

我的SVN存储库包含多个项目。 每个项目都包含相同的结构,类似于trunk -> doc -> log.txt log文件包含修订之间所做的更改。 目前,我创建了一个php脚本,该脚本在运行服务器构建时执行。 php script检查服务器本地目录中的log.txt文件。 C://..../..../doc/log.txt

它写入此文件,然后提交更改。 当有人使用另一个项目运行服务器构建时,就会出现问题。 它试图将该项目的log.txt文件检出到同一目录中,但出现svn error 提交更改后,我不再需要本地目录中的签出文件。 我能想到的唯一选择是在签出新文件夹之前删除 doc 文件夹(仅在我的本地目录而不是 repo 中),这样以前的log.txt就不再存在了。

我找到了一种recursive algorithm ,它可以删除所有带有unlink()的文件和带有rmdir的目录。 该算法运行良好。 不幸的是,隐藏的.svn文件不会unlink()出现权限被拒绝错误。 在所有文件和父目录上使用fileperms()会返回16895 ,它转换为octal中的40777 ,所以我相信它们具有完全权限。 但我相信用户的权限没有修改/写入。 有没有合适的方法来删除我服务器工作副本上隐藏的.svn folder 或者,如果有人能想到更好的方法来做到这一点。 因此,如果AprojA/doc/log.txt已经在本地目录中,我检查BprojB/doc/log.txt 有没有办法用另一个项目的日志文件签出并覆盖现有的log.txt --force 参数似乎对我没有多大作用。

我也有一个模糊的想法,也许可以使用 -depth=empty 查看顶级 svn 存储库。 然后 svn 只更新每个项目的日志 txt 文件。 因此,不要checkingout -> committing changes -> deleting . 我可以让所有log.txt文件可用。 但问题是它们都有相同的文件夹和文件名(doc/log.txt) 这一切仍然相对较新,所以我会很感激任何形式的反馈。

您可以使用通配符删除带有扩展名的日志文件。 因此,所有具有相同扩展名的文件都将在所选文件夹下被删除。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM