我尝试以多种方式将某些文件更新到旧版本,但我还没有找到合适的方法。(不是永久性更新,只是为了测试暂时更新)
例如,在SVN中以下操作是可行的。
例如,在SVN中以下操作是可行的。
svn up -r 100 foo.cpp
U foo.cpp
但在Mercurial中,“up”命令不允许文件名作为参数。
在Mercurial中,只能更新整个源代码树吗?
svn up -r 100 foo.cpp
U foo.cpp
但在Mercurial中,“up”命令不允许文件名作为参数。
在Mercurial中,只能更新整个源代码树吗?
您需要使用 hg revert
命令:
hg revert -r 100 foo.cpp
hg diff
来查看。有关更多信息,请参见hg help revert
。这在Mercurial和其他分布式版本控制系统中是基本禁止的。CVS和Subversion会针对每个文件跟踪您检出的哪个版本。您可以拥有文件x的r1版本和文件y的r2版本。但在分布式版本控制系统中,整个仓库只有一个版本,您可以通过hg id
命令在Mercurial中查看。
正如@Tom所指出的那样,您可以从不同的版本修改文件,但如果您想查看另一个版本而不显示更改,则需要在另一个克隆中执行update
命令(由于本地克隆使用硬链接,因此具有即时性和空间效率,不会造成太多麻烦)。