0

现在我运行 hg stat 并在R我已验证确实存在的文件旁边有一个大红色。

我通过以下方式到达这里:使用 hg rename,尝试恢复到重命名前的修订版(顺便说一句,这不起作用),然后将 .orig 复制回其原始文件名。

但是现在我还是有大的R。我可以通过调用hg revert文件然后复制 .orig 来解决这个问题,但是为什么会发生这种情况呢?在其他情况下会发生吗?

4

1 回答 1

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
$
于 2013-08-23T07:25:09.183 回答