我想恢复在某个提交中已删除的文件,并以不同的名称恢复它,以便它共享历史记录。在颠覆中,我会做
svn cp src@REV dest
即。使用挂钩修订。 Mercurial中的等价物是什么?
答案 0 :(得分:7)
我认为Mercurial没有内置的方法来做到这一点。但我认为你可以通过以下方式获得同样的效果:
hg up -C REV # Update to revision containing a copy of the file
<modify the file in question>
hg commit # Create second head based on old revision
hg merge # Merge two heads into one
# Note: make sure to choose to have the file exist
hg commit
hg mv MYFILE MYNEWNAME
这将使文件保留所有旧历史记录,因为最佳Mercurial可以跟踪它。
答案 1 :(得分:7)
不仅仅是(如果你在REV + 1中“hg remove
”d src):
hg revert -rREV src
hg status
A src
hg rename src dest
hg commit -m"restored src and renamed it to dest"
工作?
已编辑:我刚刚测试过它,似乎没问题。实际上src不需要“hg add
”,因为revert正在处理这个问题。但是,如果您只执行一次提交而不是两次(如上面的代码中所示),hg将发出警告:
src尚未提交,所以没有 复制数据将存储为dest。
希望它会有所帮助。