2011-11-23 156 views
3

我在我的项目的根目录中有一个.hgignore文件,它没有做下蹲。当我执行hg add时,我的项目目录中的每个文件都将被添加和跟踪。无论使用tortoisehg还是命令行,我都会得到相同的结果。命令行是我的首选。这里发生了什么?.hgignore似乎没有工作

.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 
+1

项目中的'.hgignore'文件在哪里?它不在'.hg'目录中,对吗? – brandizzi

+0

@brandizzi我的问题的第一行是在项目根目录下。它坐在我的.hg文件夹旁边。 – Pete

+0

您的'.hgignore'内容适合我。无论问题是什么,我都不认为这是你的'.ggignore'。你可能需要深入研究repo的'hgrc'和你的全局配置。 –

回答

5

显然这是文件编码的一些问题。我在Notepad ++中编辑文件(试过ANSI和UTF-8编码),编辑时文件看起来很好。我已经放弃了,并决定使用命令notepad .hgignore重新开始。然后我粘贴文件中的内容,给我带来了麻烦,所有内容都在一行中,没有中断。我修好了休息时间,保存了文件,并立即开始工作。

我仍然不确定为什么文件在记事本+ +中看起来不错,但实际上是垃圾。

+2

它可能在文件的前面放置了一个BOM(字节顺序标记),有时UTF-16可以正常使用,但对于UTF-8,虽然有时候编辑器有时也会这样做,但是对于UTF-8来说,这样也不会有问题。 –

1

glob匹配语法如下路径考虑进去。您可以切换到syntax: relglob以获取相对路径名,或在**/前加上您的模式。

+0

hg st -i仍然没有返回任何结果。此外,我目前唯一跟踪的文件是我的.hgignore。 – Pete

+1

尝试'hg --config“ui.ignore = .hgignore”stat -i',以确保hgignore位置不被其他地方覆盖。 – ataylor

0

您可能需要告诉mercurial全局忽略文件所在的位置。我必须在我的.hgrc[ui]部分下面添加此行以使其起作用。

ignore = ~/.hgignore