[英]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.