如何在远程回购中获得对 .hgignore 的更改

How to get changes to .hgignore honored in remote repo

我最近对 ​​Mercurial 存储库(远程服务器)进行了一些更改,并意识到我的 .hgignore 配置错误,因为某些文件(二进制文件等)包含在 commit/push 中,应该被蜜蜂忽略了。

所以我调整了我的 .hgignore 并让它变得完美,然后推动改变。令我吃惊的是,远程服务器的网络 ui (RhodeCode) 仍然显示 "bad" 文件属于存储库。我原以为它们会被自动剔除,因为它们违反了 .hgignore.

所以看起来我需要在本地做一些魔术,让我的工作副本接受忽略的更改,然后推送这些更改。也许从跟踪中删除文件?

举个具体的例子,在我的 repo root 中有 myapp-meta.bin。所以在 .hgignore 中,我为 *.bin 添加了一个条目。我需要执行哪些确切的命令才能从跟踪中删除 *.bin(但不是文件系统!),因此它们不会出现在远程仓库的 latest/head 版本中?

另外,hg有没有和Git的干运行(git add . -n)相似的东西?将来在我真正开始做之前看看添加到跟踪中会很方便!

您已经添加了 myapp-meta.bin,因此即使您稍后将其添加到 .hgignore,它也会被跟踪。如果您将其从存储库中删除,它将不会显示为新文件并将被忽略。

至于干运行,许多命令(hg add也在其中)支持-n--dry-run选项。