我是Mercurial的新手。只是找不到正確的命令。嘗試更新/結帳沒有運氣。我正在使用本地存儲庫。謝謝如何在Mercurial中獲取特定版本的文件?
回答
我想你想hg revert -r<rev> <file>
(這將改變該文件,因爲它是在給定的修訂版)。
是的,這正是他想要的。 :-) – Omnifarious 2010-01-21 17:10:54
或者只是hg恢復
@BlackTigerX如果沒有修改,修改後的文件將不會恢復到任何內容,即使它不是最最近承諾的版本。我有時使用它來修改版本之間的「櫻桃選擇」文件,所以這很重要。 – user2864740 2016-05-11 15:43:13
正如djc所說revert
改變了一個文件,以配合以前的修訂。如果你不想使用它,你可以使用hg cat -r revisionid filename
(代替revisionid和當然的文件名)將文件輸出到標準輸出,適合重定向你喜歡的任何地方。
purrrfect,正是我所希望的。 – yota 2015-03-19 07:06:40
真棒,聽到這樣的事情總是很好。 – 2015-03-19 13:04:26
hg revert
確實解決了這個問題。但我認爲,你對更廣泛的事情感到困惑,而不是簡單地回答你的問題,並且想要更全面地回答。
hg update
是一個完整的存儲庫命令,不適用於單個文件。這與以這種方式顛覆svn update
不同。如果你這樣做hg --help update
你可以看到這種情況,因爲該命令沒有文件參數。它可以用來將整個存儲庫移動到特定的快照,但不能用於只將一個文件做到這一點。
如果輸入hg --help
,您會看到一系列命令。這是一個相當大的,有點令人生畏的名單,但如果你讀通過它,你會發現這條線:
revert restore individual files or directories to an earlier state
現在,如果你只是想爲了比較,最後的狀態,有另一個命令你可能會感興趣,那就是hg cat
。這將允許您在任何特定版本中打印文件的內容。然後,您可以將其輸出重定向到其他文件。然後,您可以將文件的舊版本和舊版本進行並排比較。
Mercurial有一個單獨的命令update
的原因是它有可能在Mercurial中做一些在Subversion中不可能的事情。你可以將update
更早的版本,進行更改,然後提交。這將創建一個分支。 update
命令的作用是還可以更改當前工作目錄的父版本,並將該目錄中所有文件的內容更改爲該父版本的版本。
這意味着revert
更改文件的內容(或者如果給出命令的正確參數,甚至整個存儲庫),但保留當前工作副本的父修訂版本相同。
您可以通過使用hg parents
命令找出當前工作副本的父版本(或合併時的修訂版本)。
在Subversion修訂版本中是嚴格的線性進展。 Mercurial在帽子下創建分支,而且它們幾乎一樣容易合併。修訂形成DAG,而不是嚴格的線性進展。
要提取特定文件的特定版本,你可以做到這一點在Windows上:
hg cat "<FileToBeExtractedPath>" -r 9 > "<ExtractionPath>"
這裏,9是版本號。
甚至更好:
hg cat "<FileToBeExtractedPath>" -r 9 -o "<ExtractionPath>"
- 1. 從特定版本拉文件 - mercurial
- 2. 獲取特定文件的SVN版本
- 3. 如何在修訂版本中獲取更新特定文件?
- 4. Git:如何在特定修訂版本之間獲取文件
- 5. 在Mercurial中的特定變更集中獲取文件哈希
- 6. 如何強制Mercurial客戶端使用特定版本的Mercurial?
- 7. 如何使用TortoiseSVN獲取特定版本下的文件
- 8. 如何使用SVNKit獲取特定文件的修訂版本?
- 9. Git:如何從.gitattributes ident獲取特定版本的文件?
- 10. 在TFS中獲取已刪除文件的特定版本
- 11. 如何分別獲取特定版本?
- 12. 如何在Borland StarTeam中獲取特定標籤的文件夾版本?
- 13. Git獲取特定版本
- 14. 如何獲取特定版本的Jquery,例如3.2.1的TypeScript定義文件?
- 15. TFS獲取特定版本到單獨的文件夾中
- 16. TFS獲取特定版本插件
- 17. 獲取文本文件中的版本
- 18. 如何獲取文本文件中的特定行
- 19. 在Mercurial中,如何檢查分支文件的版本?
- 20. 獲取特定文本中的文本?
- 21. TFS從特定文件夾中獲取最新版本
- 22. 如何在javascript中的全文中獲取特定文本
- 23. 如何從給定的XSLT文件中獲取版本號。
- 24. 如何版本特定版本的文件
- 25. 如何從文件中獲取特定行中的特定值?
- 26. 如何獲得以前版本的特定Clearcase文件
- 27. 用cleartool獲取卸載文件的特定版本
- 28. 從S3存儲桶獲取文件的特定版本
- 29. 從特定版本獲取所有文件的最快方法?
- 30. 如何從C++文本文件中獲取特定行?
你說的 '特別版' 是什麼意思?你有特別的版本嗎?你想通過獲得特殊版本來完成什麼? – Omnifarious 2010-01-21 06:44:30
@Omnifarious:我提交了一個穩定版本的文件。然後繼續處理文件,但很快意識到我需要最後一個「好」版本。這可以通過更新svn來完成,但是當我嘗試hg更新時,它會顯示「0 files ...」 – Codism 2010-01-21 13:27:49