回答
答案是在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. 驗證SVN + Jenkins的所有修訂版
- 2. svn日誌不顯示所有修訂
- 3. SVN合併與修訂號
- 4. SVN diff在android項目中的所有strings.xml文件之間2修訂
- 5. Tortiose SVN修訂
- 6. SVN修訂圖
- 7. 修訂號碼與多項目回購
- 8. Maven SVN修訂號
- 9. SVN回去修訂
- 10. svn問題:將所有.svn目錄移出項目目錄
- 11. 如何返回所有訂單的所有訂單項目?
- 12. 針對丟失修訂版的項目的SVN最佳實踐
- 13. 顯示每個NetBeans項目文件的svn修訂版本號
- 14. 在C源代碼中包含項目的SVN修訂版
- 15. 比較文件的目錄與svn修訂版
- 16. 烏龜SVN沒有正確更新到HEAD修訂
- 17. 在文件中搜索及其所有SVN修訂版
- 18. 在Bash中打印所有svn修訂日期
- 19. 如何通過所有修訂(歷史)重命名SVN分支?
- 20. Svn mergeinfo加星標修訂
- 21. SVN修訂版關鍵字
- 22. 刪除SVN修訂版
- 23. 龜SVN修訂歷史
- 24. JMX bean中的SVN修訂
- 25. 在修改svn時,以前的所有修訂版本是否都已更新?
- 26. SVN:列出存儲庫中所有項目的所有分支
- 27. NetBeans遠程項目與svn
- 28. Openstack修改所有項目配額
- 29. Android Listview修改所有項目
- 30. Rails從所有訂單中獲取所有項目
感謝那,這裏是一個很好的文章:http://blog.projectnibble.org/2008/03/01/subversion-obliterate-the-forgotten-feature/乾杯 – Marcin 2010-03-28 10:50:16