34

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

我找到了hg revert命令,我认为它可以满足我的要求,但我不确定。

我需要获取我的代码的早期版本的副本,以便使用几分钟。但我不想打扰当前运行良好的版本。

所以我打算这样做:

hg revert -r 10 myfile.pls

有没有办法将它输出到不同的目录,这样我当前的文件工作版本就不会受到干扰?就像是:

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

2 回答 2

52

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

$ 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 中的快照。

但是,大多数时候您应该只使用更新命令来签出较早的版本。更新是您在引入新更改后用于使工作副本更新的命令,但如果需要,该命令也可用于使您的工作副本过时。所以

$ hg update -r 10   # go back
(look at your files, test, etc...)
$ hg update         # go back to the tip
于 2010-08-30T06:03:48.240 回答
9

您使用的命令是这样的:

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

了解一点 Unix 有助于使用 Mercurial 命令。也许cat应该有一个内置的别名print或类似的东西。

于 2010-08-30T00:53:13.853 回答