我想恢复一个在某个提交中被删除的文件,并将其以不同的名称恢复,以便它与历史记录共享。 在Subversion中,我会这样做:
svn cp src@REV dest
即使用peg修订。在Mercurial中的等效方法是什么?
我想恢复一个在某个提交中被删除的文件,并将其以不同的名称恢复,以便它与历史记录共享。 在Subversion中,我会这样做:
svn cp src@REV dest
即使用peg修订。在Mercurial中的等效方法是什么?
我不认为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
hg remove
" 删除了src,那么它只会在REV+1中被删除:hg revert -rREV src
hg status
A src
hg rename src dest
hg commit -m"restored src and renamed it to dest"
工作?
编辑:我刚刚测试了一下,看起来没问题。实际上,“hg add
”对于src并不必要,因为还原会处理这个问题。但是,如果你只提交一个提交而不是两个(就像上面的代码中那样),hg会发出警告:
src尚未提交,因此不会为dest存储任何复制数据。
希望这能帮到你。