mercurial - 如何使Mercurial忽略任何扩展名为.xxx的文件

标签 mercurial file-extension hgignore

我希望Mercurial忽略具有特定扩展名的任何文件。

例如,我想忽略扩展名为.SUO的文件。 (无需对Visual Studio用户设置进行版本控制。)

因此,我将.hgignore文件更改为:

syntax: glob
*.suo

但是,这没有任何效果,Mercurial仍然可以看到我的.suo文件。

我在这里做错了什么?

最佳答案

如果在更改.hgignore文件之前运行hg status时,.suo文件前面带有?,则现在应将其忽略。如果还有其他任何内容(例如MA),则存储库已经对其进行了跟踪,并且不会神奇地停止对其进行跟踪。在这种情况下,您需要对文件执行hg remove删除它并让hg停止跟踪它,或者只对它执行hg forget以使hg停止跟踪它但保留文件。在这两个之后都应提交。

如果路径与.hgignore文件中的模式匹配的文件,则状态列表中仅会忽略的文件是未跟踪的文件。省略跟踪的文件是没有意义的,因为您将永远看不到它是否已被修改,添加或删除。

编辑:Mercurial仅跟踪文件(您不能使其跟踪空目录),但是.hgignore中的模式仅针对相对于存储库根目录的文件路径字符串运行。运行hg status时,它显示的相对路径非常相同。因此它确实可以按您说的那样工作,因为以下几行是我自己的.hgignore文件的标准部分:

语法:glob
* \ obj \ *
* \ bin \ *
* .csproj.user
* .suo

同样,当您运行hg status并显示一个.suo文件时,该行的开头是哪个字符?它是MAR!?字符吗?它走的路是什么?

关于mercurial - 如何使Mercurial忽略任何扩展名为.xxx的文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6067152/

相关文章:

authentication - 在 mercurial 的 allow_read、allow_push 等中使用组

mercurial - 如何在推送时制作 Mercurial 运行脚本?

java - 检查文件扩展名是否为 .txt 的程序

c# - openfiledialog 的过滤属性不起作用

mercurial - 如何使用 .hgignore 仅排除二进制文件?

regex - Mercurial .hgignore 负前瞻

mercurial - 如何忽略HG中的某些文件夹?

web - 使用 hg 存储库作为网站

mercurial - 不同位置的相同标签名称会导致问题

c++ - 在一个c++项目中(文件是moSTLy.cpp),如果一个文件只包含c代码,它应该命名为.c还是.cpp?