簡體   English   中英

svn可以“忽略”已刪除的文件或從存儲庫中刪除它們嗎?

[英]Can svn “ignore” deleted files or delete them from repository?

當我嘗試將我的項目提交給svn時,我遇到了以下問題

svn: '/var/www/sites/blabla/425/file.png' is scheduled for addition, but is missing

發生這種情況是因為從項目中刪除了一些材料(我不能使用svn來刪除它)。 有沒有辦法說svn忽略這些文件,或只是刪除它們如果找不到它們?

當您執行svn status ,輸出將顯示任何此類文件“缺少”作為以感嘆號開頭的行:

!       425/file.png

您應該編寫一個腳本(使用您選擇的腳本語言或命令行shell)來解析此輸出,查找以感嘆號開頭的行,提取文件名,然后執行svn revert <filename> 然后,這將撤消對該文件的本地更改,從而允許您毫無問題地進行提交。

編輯 :既然你在評論中提到了php腳本,我想你熟悉PHP腳本。 在這種情況下,您可以使用PHP函數svn_status

edit2 :如果要從存儲庫中刪除文件,請改為使用svn rm --force <filename>

所以你svn add文件但稍后手動刪除它? 嘗試;

svn rm --force file.png

從SVN索引中刪除它。

從終端運行以下命令:

svn revert $(svn st | awk 'BEGIN{FS=""} $1=="!" && $2 !~ /\.(sql|log|tmpl)$/ {print $2}')

適合我:

svn status | grep ^\! | awk '{print $2}' | xargs -L1 svn del --force

如果你的文件名中有空格,我們就不能使用awk,所以我們剪切到文件名的開頭(你可能要編輯這個:因為idk如果我們必須在每個系統上剪掉9個字符):

svn status | grep ^\! | cut -c9- | sed 's/ /\\ /g'| xargs -L1 svn del --force

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM