我最近將信息提交給一個文件。只有幾行高度機密的代碼。我需要徹底地從Subversion版本庫中刪除這些信息。我怎麼能做到這一點,而不會恢復和失去變化?它只在一個文件中?那麼,是否可以刪除對該文件的所有引用,然後重新提交正確的文件?從Subversion提交中刪除數據?
回答
我認爲你必須
- 記錄不好的承諾和以後每犯一個或幾個補丁
- 轉儲庫
- 建立新倉庫
- 進口的所有修訂在轉儲到存儲庫的錯誤提交之前
- 依次重新應用每個補丁(並在提交之前刪除幾行祕密信息)
這是唯一的解決方案。 – khmarbaise 2011-12-27 17:36:43
SVN提供一個名爲svndumpfilter
的命令,允許您轉儲存儲庫並從中排除路徑。然後,將該轉儲文件加載到一個新的存儲庫中,該文件將會消失。
svnadmin dump /path/to/repos > dump.file
svndumpfilter exclude path/to/remove <dump.file> newdump.file
svnadmin load /path/to/newrepos < newdump.file
唯一的解決辦法是過濾在服務器端存儲庫。你應該使用像這樣的命令:
svnadmin create /path/to/newrepos
svnadmin dump /path/to/repos --incremental | svndumpfilter excdlude path/to/remove | svnadmin load /path/to/newrepos
你能等到Subversion 1.8出來嗎?那就是當高度要求的消除命令被執行時(當然,除非他們已經決定將它移到Subversion 1.9或2.0)。
不是吧?
您唯一能做的就是取下您的存儲庫,執行svnadmin dump
,使用svndumpfilter
對其進行過濾以刪除更改,然後使用svnadmin load
重新加載存儲庫。這可以在單個管道中完成,但取決於您的存儲庫大小,可能意味着停機幾個小時。
我已經做了好幾次了。這並沒有什麼樂趣,特別是當你必須在凌晨2點這麼做的時候,因爲當你的開發人員忙於使用它的時候你無法取下你的存儲庫。
值得注意的是,消除仍然不在1.8.11,以防萬一有人在這裏結束並激動。 :) – dannysauer 2015-03-24 19:10:23
- 1. Subversion空格刪除提交鉤子
- 2. 完全從Subversion歷史記錄中刪除空的git提交
- 3. 訪問Subversion提交外部數據
- 4. 從CCScene提交/刪除UIViewController?
- 5. http提交subversion
- 6. 完全刪除git數據庫提交
- 7. 從Subversion版本庫恢復數據(原始數據刪除)
- 8. 灰燼數據:刪除記錄,而不從視圖中刪除之前提交
- 9. 從數據庫中刪除最近的提交
- 10. Symfony2從提交的表單數據中刪除id字段
- 11. 從提交歷史中刪除敏感配置數據
- 12. 提交表單後記錄沒有從數據庫中刪除
- 13. 從Subversion中提交/更新中排除特定文件
- 14. 從SubVersion/SmartSVN刪除文件
- 15. 如何從Gitlab中的提交表中刪除任何提交?
- 16. 從上次提交中刪除文件
- 17. 從Git中刪除陳舊的提交
- 18. 從表單提交中刪除空格
- 19. 從回購中刪除提交狀態
- 20. 從Git中刪除推送提交
- 21. 從提交中刪除文件
- 22. 從分支中間刪除提交
- 23. 從git中刪除大型提交
- 24. 從所有提交中刪除文件
- 25. Subversion提交問題
- 26. 如何從GitHub上的提交歷史中刪除提交?
- 27. 如何從表單提交中刪除「提交查詢」?
- 28. 如何從Subversion中刪除文件?
- 29. 從Subversion中刪除web.config(ASP.NET項目)
- 30. 在Git中刪除提交
root密碼,是吧?你是否控制倉庫? – 2011-12-27 17:09:55
[SVN Obliterate!]的可能重複(http://stackoverflow.com/questions/560684/svn-obliterate) – 2011-12-27 17:13:41
Yip,root密碼。 *嘆息* – coderama 2011-12-27 17:19:36