我是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. Mercurial:获取文件早期版本的非版本化副本
- 5. 如何使用SVNKit获取特定文件的修订版本?
- 6. 如何强制Mercurial客户端使用特定版本的Mercurial?
- 7. 在TFS中获取已删除文件的特定版本
- 8. 如何分别获取特定版本?
- 9. 如何在Borland StarTeam中获取特定标签的文件夹版本?
- 10. 如何获取特定版本的Jquery,例如3.2.1的TypeScript定义文件?
- 11. TFS获取特定版本到单独的文件夹中
- 12. TFS获取特定版本插件
- 13. 获取文本文件中的版本
- 14. 获取特定文本中的文本?
- 15. TFS从特定文件夹中获取最新版本
- 16. 如何在javascript中的全文中获取特定文本
- 17. 在Mercurial中,如何检查分支文件的版本?
- 18. 如何从给定的XSLT文件中获取版本号。
- 19. 如何版本特定版本的文件
- 20. 如何获得以前版本的特定Clearcase文件
- 21. 从S3存储桶获取文件的特定版本
- 22. 用cleartool获取卸载文件的特定版本
- 23. 如何从gemspec文件获取版本?
- 24. 如何在svn中提交特定版本的文件?
- 25. 获取分支的特定版本
- 26. 获取特定版本的IE
- 27. 获取列的特定“版本”
- 28. 获取特定目标的版本号
- 29. 如何打印Mercurial中特定文件的所有修订版的内容?
- 30. 如何通过命令行从CVS获取新增文件的特定版本?
你说的 '特别版' 是什么意思?你有特别的版本吗?你想通过获得特殊版本来完成什么? – Omnifarious 2010-01-21 06:44:30
@Omnifarious:我提交了一个稳定版本的文件。然后继续处理文件,但很快意识到我需要最后一个“好”版本。这可以通过更新svn来完成,但是当我尝试hg更新时,它会显示“0 files ...” – Codism 2010-01-21 13:27:49