簡體   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