Mercurial hg revert带回了旧文件

Mercurial hg revert带回了旧文件,mercurial,revert,Mercurial,Revert,我一直在做一个大项目,为客户更新一个大的代码库。他们使用Mercurial作为他们的风投 像往常一样,我在项目一开始就把他们的主分支分支给了他们 作为项目的一部分,我删除了代码库各个部分中的250多个文件。随着项目的进展,这些删除(和其他更改)都被推回远程存储库 最近,我做了一个我不想做的改变。考虑到我会回到上一次提交,我输入: hg revert 我没有检查到底发生了什么(我知道这很愚蠢),我就做出了承诺并推动了 看到我在项目中删除的文件中有很大一部分(看起来是随机选择的)被重新添加到我的分

我一直在做一个大项目,为客户更新一个大的代码库。他们使用Mercurial作为他们的风投

像往常一样,我在项目一开始就把他们的主分支分支给了他们

作为项目的一部分,我删除了代码库各个部分中的250多个文件。随着项目的进展,这些删除(和其他更改)都被推回远程存储库

最近,我做了一个我不想做的改变。考虑到我会回到上一次提交,我输入:

hg revert
我没有检查到底发生了什么(我知道这很愚蠢),我就做出了承诺并推动了

看到我在项目中删除的文件中有很大一部分(看起来是随机选择的)被重新添加到我的分支中,我感到震惊。查看过去删除某些文件的提交,这些提交现在包含已删除的文件

就好像我整个历史的一部分被改变了,而且以一种我无法理解的方式

这么简单的命令怎么能做这么疯狂的事情,我怎么能撤销这些更改?我找不到一种方法来重新删除所有这些文件,除了通过代码库手动拾取。。。这肯定不是最好的解决方案吗

非常感谢您的帮助

来自
hg revert--help

hg恢复[选项]。。。[-r版本][名称]

将文件恢复到签出状态

在未指定修订的情况下,还原指定的文件或目录 指向工作目录父目录中的内容。这 将文件内容恢复到未修改状态和计划外状态 添加、删除、复制和重命名

因为回复 不更改工作目录父目录,这将导致 要显示为已修改的文件

所以根据问题中的信息。。。似乎单靠恢复并不能导致所描述的情况


也许如果工作文件夹中已经有其他更改,或者合并被不正确地放弃,或者父版本不是最新的版本,而是更早的版本,这可以解释发生了什么。

hg revert
在工作树上操作,没有参数,只需将工作树文件设置回当前签出提交中的方式即可。所以现在还不清楚这里到底发生了什么。我们能看看那棵树吗?您通过
hglog-G
看到了什么?