检索旧版本的文件而不更改工作副本父级

时间:2010-08-30 00:44:06

标签: version-control mercurial dvcs revert

如何在Mercurial中获取文件早期版本的副本,而不在工作区中创建该文件的新默认工作副本?

我找到了hg revert命令,我认为它符合我的要求,但我不确定。

我需要获取我的代码的早期版本的副本才能使用几分钟。但我不想打扰当前正常运行的版本。

所以我打算这样做:

hg revert -r 10 myfile.pls

有没有办法将它输出到另一个目录,这样我的文件的当前工作版本不受干扰?类似的东西:

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

2 个答案:

答案 0 :(得分:51)

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

答案 1 :(得分:9)

您使用的命令是:

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

了解一点Unix有助于Mercurial命令。也许cat应该有内置别名print或类似内容。