可以在Mercurial中将特定目录更新为旧版本吗?

时间:2011-09-16 02:04:36

标签: mercurial

我尝试在很多方面将某些文件更新为旧版本,但我还没有找到。 (不是永久性的,只是暂时更新以进行测试)

例如,SVN中的以下内容正常。

svn up -r 100 foo.cpp
U    foo.cpp

但在Mercurial中,'up'命令不允许文件名参数。

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

2 个答案:

答案 0 :(得分:7)

您必须使用hg revert

hg revert -r 100 foo.cpp

请注意,这可以为您提供本地更改,如运行hg diff

所示

有关详细信息,请参阅hg help revert

答案 1 :(得分:2)

Mercurial和其他DVCS从根本上不允许这样做。 CVS和Subversion都会跟踪您基于每个文件检出的修订版本。你可以有文件x的r1和文件y的r2。在DVC中,整个存储库都是单一版本,在Mercurial中,您可以使用hg id查看。

正如@Tom指出你可以修改来自不同版本的文件,但是如果你想看到另一个版本没有显示更改,你需要在另一个克隆中执行update(假设本地克隆使用硬盘)链接是(a)即时和(b)空间效率)这不是一件容易的事。