如何在Mercurial中获取文件早期版本的副本,而不在工作区中创建该文件的新默认工作副本?
我找到了hg revert
命令,我认为它符合我的要求,但我不确定。
我需要获取我的代码的早期版本的副本才能使用几分钟。但我不想打扰当前正常运行的版本。
所以我打算这样做:
hg revert -r 10 myfile.pls
有没有办法将它输出到另一个目录,这样我的文件的当前工作版本不受干扰?类似的东西:
hg revert -r 10 myfile.pls > c:\temp\dump\myfile_revision10.pls
答案 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
或类似内容。