Mercurial是否可以将特定目录更新到旧版本?

4
我尝试以多种方式将某些文件更新到旧版本,但我还没有找到合适的方法。(不是永久性更新,只是为了测试暂时更新)
例如,在SVN中以下操作是可行的。
svn up -r 100 foo.cpp
U    foo.cpp

但在Mercurial中,“up”命令不允许文件名作为参数。

在Mercurial中,只能更新整个源代码树吗?

2个回答

7

您需要使用 hg revert 命令:

hg revert -r 100 foo.cpp

注意,这将给您本地更改,可以通过运行hg diff来查看。有关更多信息,请参见hg help revert

谢谢,但这与我想要的不同... 这是唯一的方法吗? - JaycePark
使用“revert”的问题是什么? - Tom

2

这在Mercurial和其他分布式版本控制系统中是基本禁止的。CVS和Subversion会针对每个文件跟踪您检出的哪个版本。您可以拥有文件x的r1版本和文件y的r2版本。但在分布式版本控制系统中,整个仓库只有一个版本,您可以通过hg id命令在Mercurial中查看。

正如@Tom所指出的那样,您可以从不同的版本修改文件,但如果您想查看另一个版本而不显示更改,则需要在另一个克隆中执行update命令(由于本地克隆使用硬链接,因此具有即时性和空间效率,不会造成太多麻烦)。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接