我的.hgignore文件有什么问题? (没有被忽略)

时间:2010-12-07 16:29:27

标签: version-control mercurial bitbucket hgignore

我的.hgignore文件内容如下,NOTHING被忽略:

^nbproject$
^.htaccess$
^my.conf$
/media/images/captcha/.*\.jpg$

我尝试将文件放在主项目存储库文件夹和工作目录中。

怎么了?请帮忙。

4 个答案:

答案 0 :(得分:11)

您不需要syntax:regexp - 这是默认设置。

您需要将文件放在.hg文件夹上方的目录中,因此布局如下所示:

--yourepo
|
+--- .hgignore
+--- .htaccess
+--- .hg

您还需要转义文件路径中的所有点。试试这个:

^nbproject$
^\.htaccess$
^my.conf$
/media/images/captcha/.*\.jpg$

您确实需要确保尚未添加和/或提交文件。 .hgignore文件不会覆盖add,它只会阻止您使用通配符添加内容以及查看.hgstatus中忽略(未添加)的内容。如果您已经添加了这些文件,则需要hg forget这些文件才会被忽略。

如果没有任何效果,请尝试:

hg status --all

并发布输出。

答案 1 :(得分:4)

将此行添加到文件顶部:

syntax: regexp

至于.hgignore文件应该去哪里,按https://www.mercurial-scm.org/wiki/.hgignore

  

.hgignore文件正在工作中   目录,在.hg文件夹旁边。

答案 2 :(得分:1)

你应该使用更简单的glob语法来实现这样的基本忽略(syntax: glob指令是显式的)。此外,你应该在技术上逃避'。'因为它们是特殊的正则表达式字符,但你很幸运,因为'。'恰好匹配任何字符,包括文字'。'。这样的混乱只是强调了我使用简单的glob机制的观点。

答案 3 :(得分:1)

另请注意,如果hg文件以UTF-8 BOM开头,则.hgignore无法处理{{1}}文件。由于这是Windows记事本的默认行为,因此您可能需要注意这一点。