我有一个.hgignore
文件在我的项目的根目录,它没有做蹲。当我执行hg add
时,项目目录中的每个文件都会被添加和跟踪。无论使用tortoisehg还是命令行,我都会得到相同的结果。命令行是我的首选。这是怎么回事?
我的.hgignore
(取自另一个关于SO的问题):
# use glob syntax
syntax: glob
*.obj
*.pdb
*.user
*.aps
*.pch
*.vspscc
*.vssscc
*_i.c
*_p.c
*.ncb
*.suo
*.tlb
*.tlh
*.bak
*.cache
*.ilk
*.log
*.lib
*.sbr
*.scc
[Bb]in
[Dd]ebug*/
obj/
[Rr]elease*/
_ReSharper*/
[Tt]humbs.db
[Tt]est[Rr]esult*
[Bb]uild[Ll]og.*
*.[Pp]ublish.xml
*.resharper
显然这是文件编码的一些问题。我在notepad++中编辑文件(尝试了ANSI和UTF-8编码),编辑时文件看起来很好。我放弃了,决定用命令notepad .hgignore
重新开始。然后我从给我带来麻烦的文件中粘贴内容,所有内容都在一行上,没有间断。我修复了中断,保存了文件,它立即工作了。
我仍然不确定为什么文件在notepad++中看起来很好,但实际上是在放垃圾。
glob
匹配语法考虑了路径。您可以将相对路径名切换到syntax: relglob
,或者使用**/
作为模式的前缀。
您可能需要告诉mercurial全局忽略文件的位置。我必须在.hgrc
的[ui]
部分下添加这一行才能工作。
ignore = ~/.hgignore