我在最近的4-5版本中打破了一些代碼/推送到主存儲庫。現在我想完全刪除這個推送,並從這一點開始我的倉庫的HEAD。我怎樣才能做到這一點?在SVN中有dump命令,它將整個存儲庫從一個修訂版複製到另一個修訂版。在Mercurial或其他方面有一些替代品?如何切斷某些修訂/推送的mercurial存儲庫
回答
Quardas「完全刪除」不是mercurial的默認詞彙表的一部分。這是一個圍繞不變歷史建立的系統。你可以扭轉你後悔的事情,但你不要刪除它。想想一個科學家在他/她的實驗室中用筆在日誌中編號頁面上書寫 - 撕掉頁面被認爲是欺詐行爲。如果只是讓你記住不要再試一次,那麼保持盲目盟友和錯誤是有價值的。
考慮使用hg backout
,它可以輕鬆自動地添加變更集的反轉,從而完全消除它,但保留變更集及其反轉的記錄。
如果你真的不能購買到這個概念,試試看clone -r
。它可以讓你克隆你的倉庫到某個特定的點。例如:
hg clone -r -6 myrepo partial-myrepo
mv myrepo myrepo-with-stuff-I-regret
mv partial-myrepo myrepo
將用一個新的副本替換您的回購,其中省略了最後五個變更集。
Ther有很多其他方法可以使用不屬於mercurial默認工具集(擴展名如histedit,strip,mercurial queues等)的工具來做同樣的事情,但最好不要刪除歷史記錄所有,如果你這樣做沒有擴展。
當科學家擁有實驗室和日誌並記下他應該保存在別處或他的頭上的密碼時,並非如此。當一個開發者犯了一個信息泄露的錯誤,保持這個錯誤並不是最好的。有些錯誤不是代碼錯誤,有些是密碼和私鑰以及必須在發佈之前被擦除/提取的專有文檔。使用SVN,它就像svnadmin dump,全局替換一樣簡單,從轉儲恢復新的倉庫。對於hg來說應該很容易,因爲它是一個常見的事故。 – codenheim 2016-02-24 11:40:54
當然,但這個問題是關於破碼的。 Histedit和朋友對歷史的實際修改比傾倒和恢復更容易,但是當然對於任何系統來說,其他人已經得到的任何東西都已經消失。通常最好只創建新的憑據。 – 2016-02-24 17:08:33
您可以使用convert extension來做到這一點。
雖然我不明白爲什麼人們總是想在他們的VCS歷史中隱藏/刪除他們犯了錯誤。只要你將它修復到更新的版本中,這並不是那麼重要......
gizmo,我完全同意刪除歷史是一個壞主意。 – 2010-09-24 15:57:04
當您有敏感信息需要完全擦除而不會丟失項目歷史時,這並不是一個壞主意。一個常見的錯誤是發現一個敏感的密碼被檢入到需要發佈給更廣泛的受衆的項目中。關於最佳實踐的談話是無關緊要的,能夠解決這一問題纔是最重要的。汞是一種動力工具。它不應該爲我思考。事實是,敏感信息會出來。問題是我們失去了什麼來完成它。強迫用戶使用核選項並不是最好的方法。 – codenheim 2016-02-24 11:26:56
- 1. 推送到遠程Mercurial存儲庫
- 2. 如何從Mercurial存儲庫中完全刪除某些內容?
- 3. 如何防止Mercurial提交/推送某些文件?
- 4. 將git修訂合併到mercurial存儲庫的最佳方法?
- 5. 使用Apache和Windows通過HTTP推送我的Mercurial存儲庫
- 6. Mercurial。刪除推送到存儲庫的分支
- 7. 使用Mercurial將本地克隆推送到遠程存儲庫
- 8. Mercurial本地分支並推送到共享存儲庫
- 9. Mercurial存儲庫沒有推送到網絡服務器
- 10. 如何設置netbeans以推送到受密碼保護的mercurial存儲庫?
- 11. 如何將新項目推送到共享的Mercurial多存儲庫?
- 12. 如何禁止推送到共享磁盤方法發佈的Mercurial存儲庫?
- 13. Subversion FSFS - 修訂版如何存儲在存儲庫中?
- 14. Mercurial存儲庫隨着時間的推移如何增長?
- 15. 爲什麼某些修訂在某些用戶的VisualSVN存儲庫歷史記錄中不可見?
- 16. 升級後的redmine中的mercurial存儲庫問題「存儲庫中不存在條目和/或修訂版本。」
- 17. 僅將某些SVN修訂版從一個存儲庫複製到另一個存儲庫
- 18. Mercurial ssh發送一些標籤名稱修訂
- 19. 如何將修訂版本從mercurial推回顛覆?
- 20. 無法將某些參考文獻推送到遠程存儲庫(Gerrit禁止)
- 21. 崩潰和回滾後如何修復Mercurial存儲庫?
- 22. Git:推送到已修改的存儲庫
- 23. 如何將現有修改的存儲庫推送到新代表?
- 24. FTP上的Mercurial存儲庫
- 25. 如何全文索引Mercurial存儲庫?
- 26. 如何保持Mercurial存儲庫小?
- 27. 如何清理Mercurial存儲庫?
- 28. 如何從mercurial存儲庫檢出OpenJDK?
- 29. Git只推送裸露的存儲庫?
- 30. 如何識別darcs存儲庫中的修訂版本?
看起來像一個副本http://stackoverflow.com/questions/3765208/undo-an-hg-push-backout – 2010-09-24 14:37:02