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