现在我运行hg stat并在我验证过的文件旁边有一个大的红色R
。
我来到这里:使用hg rename,尝试恢复到预重命名版本(顺便说一句,不起作用),然后将.orig复制回原始文件名。
但现在我还有大R
。我可以通过调用文件上的hg revert
然后复制.orig来解决这个问题,但为什么会发生这种情况呢?它会在其他情况下发生吗?
答案 0 :(得分:1)
假设您有一个文件foo.txt
并且您
$ hg rename foo.txt bar.txt
$ hg status
A bar.txt
R foo.txt
foo.txt
被标记为已移除(R
),新文件bar.txt
被标记为已添加(A
)。你试图恢复。但正如你所说的那样,它失败了:
尝试恢复到重命名前修订版(顺便说一下,它没有用)
所以没有任何改变。 foo.txt
仍被标记为已删除,bar.txt
已标记为已添加。
如果您手动还原文件foo.txt
,则无关紧要。
$ mv bar.txt foo.txt
$ hg status
R foo.txt
! bar.txt
只会说您添加了重命名的文件bar.txt
丢失了。
Mercurial记录了您的操作并跟踪添加和删除的文件。手动添加和删除文件没有帮助。要解决此问题,您应该指示mercurial重新添加foo.txt
并删除bar.txt
。
$ hg add foo.txt
$ hg status
! bar.txt
$ hg remove bar.txt
$ hg status
$