从 Mercurial 存储库中删除文件而不分发删除

Remove file from Mercurial repository without distribute a deletion

在我的存储库中,有人提交了本应未知的文件(或根据 .hgignore 文件忽略)。

我如何告诉 Mercurial 不再跟踪这些文件,而是在远程工作副本上将文件保留为未知(或忽略)?(对于远程工作副本,我的意思是工作存储库其他用户的副本。)

更多详细信息:具体而言,这些文件是在将项目导入为 Maven/Gradle 项目时由 Eclipse IDE 生成的 .classpath 和 .project。它们已添加到存储库并提交。我不想跟踪那些文件的更改,但我不想要求每个人再次将项目重新导入到 Eclipse 中。将 .classpath 和 .project 重命名为 .classpath.template 和 .project.template 无法解决我的问题。

这很棘手,因为当您告诉 hg 忘记它时,该文件将在更改日志中存储为已删除 - 并且在更新时,它将在晚于提取和更新到 rev 的每个人的工作目录中删除这些文件已从跟踪中删除的文件。

如果每个人都可以使用 hg revert -rTRACKED FILENAME,其中 TRACKED 是(仍然)跟踪文件的变更集,这不是很好,但可能是最简单的解决方案。

您可能希望将所有您不想被跟踪的文件添加到您的 .hgignore 中,这样这些文件就不会被 hg addremove 意外添加。