2010-08-30 72 views
33

如何在Mercurial中获取文件的早期版本的副本,而无需在工作区中创建文件的新默认工作副本?在不更改工作副本的情况下检索文件的旧版本

我发现了hg revert命令,我认为它做了我想要的,但我不确定。

我需要得到我的代码的早期版本的副本才能使用几分钟。但我不想打扰正在工作的当前版本。

所以我要做到这一点:

hg revert -r 10 myfile.pls 

有没有办法把它输出到不同的目录,这样的文件我目前的工作版本不被破坏?喜欢的东西:

hg revert -r 10 myfile.pls > c:\temp\dump\myfile_revision10.pls 

回答

49

cat command可用于检索文件的任何修订:

$ hg cat -r 10 myfile.pls 

可以输出到另一个文件重定向与

$ hg cat -r 10 myfile.pls > old.pls 

或使用--output标志。如果你需要为多个文件做到这一点,再看看在archive command,它可以为整个项目,例如为此,

$ hg archive -r 10 ../revision-10 

此创建一个包含用户信息库的快照,因为它的文件夹revision-10查看修订版10.

但是,大多数情况下,您应该只使用update command来检出较早的修订版。更新是用于在引入新更改后使工作副本保持最新状态的命令,但如果需要,该命令也可用于使工作副本过期。所以

$ hg update -r 10 # go back 
(look at your files, test, etc...) 
$ hg update   # go back to the tip 
+0

感谢您对'update'的*简洁*描述!在使用更新命令之前,我有点紧张(正如我想的那样,是coriolanus)。 – 2015-03-16 20:48:06

9

您使用的命令是这样的:

hg cat -r 10 myfile.pls > C:\temp\dump\myfile_revision10.pls 

得知有位Unix的帮助与Mercurial命令。也许cat应该有一个内置别名print或类似的东西。

相关问题