php - 如何在远程服务器上使用 php 删除本地工作副本上隐藏的 .svn 文件夹?Unlink() 权限被拒绝
问题描述
我的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
转换为40777
in octal
,因此我相信它们具有完全权限。但我相信用户的权限没有修改/写入。有没有合适的方法来删除.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)
。这一切仍然相对较新,所以我会很感激任何形式的反馈。
解决方案
您可以使用通配符删除带有扩展名的日志文件。因此,所有具有相同扩展名的文件都将在所选文件夹下被删除。
推荐阅读
- java - 如何使用字符串访问实例中的java类成员
- powershell - 导出通讯组、成员和电子邮件地址
- javascript - 在 Angular 中输出第 3 列和第 5 列的总计差
- javascript - Cookie 未由 Chrome 和 withCredentials 发送是真的
- repository-pattern - 尝试激活“Api.ServicesBusiness.EquipoServices”时无法解析“Api.Repositories.UnitOfWork”类型的服务
- javascript - 如何将变量发送到 php 文件
- amazon-web-services - 向规范 ID 授予权限时 API `aws s3` 和 `aws s3api` 之间的区别
- java - 尝试设置旧版 Java Spring 引导应用程序时无法解决导入 com.fasterxml.jackson 错误
- apache-spark - RDD 的 .first() 方法是否洗牌?
- ios - 如何在 SwiftUI 中为图像设置动画,播放帧动画