现在我运行 hg stat 并在R
我已验证确实存在的文件旁边有一个大红色。
我通过以下方式到达这里:使用 hg rename,尝试恢复到重命名前的修订版(顺便说一句,这不起作用),然后将 .orig 复制回其原始文件名。
但是现在我还是有大的R
。我可以通过调用hg revert
文件然后复制 .orig 来解决这个问题,但是为什么会发生这种情况呢?在其他情况下会发生吗?
现在我运行 hg stat 并在R
我已验证确实存在的文件旁边有一个大红色。
我通过以下方式到达这里:使用 hg rename,尝试恢复到重命名前的修订版(顺便说一句,这不起作用),然后将 .orig 复制回其原始文件名。
但是现在我还是有大的R
。我可以通过调用hg revert
文件然后复制 .orig 来解决这个问题,但是为什么会发生这种情况呢?在其他情况下会发生吗?
假设你有一个文件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
$