回答
答案是在Subversion FAQ:
有一些特殊情況下,您可能 要破壞的 所有證據文件或提交。 (也許有人 不小心犯了一個機密 文件)。這並不是那麼容易,因爲 Subversion被故意設計成 永不丟失信息。修訂版本是 不可變的樹,它建立在另一個 上。從 歷史中刪除修訂將導致多米諾骨牌效應, 在所有後續 版本中創建混亂並可能使所有工作副本無效 。
該項目的計劃,然而,有一天 實施svnadmin的 泯命令這將 來進行永久刪除 信息的任務。 (參見問題516)
在此期間,你唯一的辦法是 到svnadmin的轉儲你的資料庫,然後 管轉儲文件通過 過濾流(不包括壞路徑) 到svnadmin的負載命令。有關詳細信息,請參閱 Subversion書的第5章 。
不,我不相信。
如果你確實需要從SVN歷史記錄中完全刪除文件,我認爲唯一的方法是做類似於傾銷存儲庫,用svndumpfilter過濾出你不想要的文件,然後重新創建來自轉儲的存儲庫。
你爲什麼要這樣做?
我有一個項目,我想徹底從我的回購中刪除。 – Marcin 2010-03-28 10:27:35
這是如何做到這一點在Linux上:
/>svnadmin dump /path/to/repos > proj.dump
/>cat proj.dump | svndumpfilter exclude somefolder > cleanproj.dump
/>service svn stop
/>BACKUP /path/to/repos/conf /path/to/repos/hooks (all custom configuration for this repository)
/>DELETE /path/to/repos
/>svnadmin create /path/to/repos
/>RESTORE /path/to/repos/conf /path/to/repos/hooks
/>svnadmin load /path/to/repos < cleanproj.dump
/>service svn start
做
我假設你在同一個倉庫下談論多個項目:
myrepo/
project1/
project2/
如果你只是想讓一個項目在不與存儲庫歷史結合的情況下「消失」,那麼如果你使用的是一個認證,你可以簡單地隱藏這條路徑利用authz的授權機制。換句話說,你是而不是使用'svn + ssh'來訪問版本庫。
假設我的authz中已經有一個名爲'everyone'的組。在我的authz我會設置像這樣:
[/project1]:
@everyone =
我想刪除它不隱藏, 謝謝。 – Marcin 2010-03-30 10:44:05
- 1. Tortiose SVN修訂
- 2. 修訂號碼與多項目回購
- 3. svn問題:將所有.svn目錄移出項目目錄
- 4. 如何返回所有訂單的所有訂單項目?
- 5. 在C源代碼中包含項目的SVN修訂版
- 6. 顯示每個NetBeans項目文件的svn修訂版本號
- 7. 針對丟失修訂版的項目的SVN最佳實踐
- 8. 比較文件的目錄與svn修訂版
- 9. 烏龜SVN沒有正確更新到HEAD修訂
- 10. 在文件中搜索及其所有SVN修訂版
- 11. SVN修訂版關鍵字
- 12. 龜SVN修訂歷史
- 13. 在修改svn時,以前的所有修訂版本是否都已更新?
- 14. SVN:列出存儲庫中所有項目的所有分支
- 15. Rails從所有訂單中獲取所有項目
- 16. Mysql如何選擇所有訂單和訂單中的項目
- 17. 當使用修訂版本範圍時,git svn沒有更新所有分支
- 18. SVN更新修訂歷史記錄中的修訂版本
- 19. 現有的eclipse項目svn
- 20. 確定C#中的SVN工作副本修訂版#
- 21. SVN缺少修訂 - 有沒有人有解決方案
- 22. 哈德森沒有簽出新的svn修訂與SCM輪詢,即使它看到新的修訂
- 23. 結帳SVN;修改;上傳到現有的Github項目
- 24. 導出差異所有修訂
- 25. 取所有的矩陣數字修訂
- 26. 自動保存所有(非gdoc)修訂
- 27. 如何從所有svn標記的外部結構的HEAD修訂版簽出
- 28. 使用SVNKIT從SVN中的分支獲取所有修訂日誌
- 29. svn恢復 - 恢復個別修訂版
- 30. SVN更新但忽略某些修訂
感謝那,這裏是一個很好的文章:http://blog.projectnibble.org/2008/03/01/subversion-obliterate-the-forgotten-feature/乾杯 – Marcin 2010-03-28 10:50:16