我的.hgignore文件中有模式“* .pyc”

实际上,.pyc文件在根级别会被忽略,但在子目录内部不会被忽略。

有任何想法吗?

最佳答案

默认情况下,模式是python正则表达式。在路径的每个部分中搜索表达式。因此,您可能希望\.pyc$匹配以.pyc结尾的文件

$ hg init test-ignore
$ cd test-ignore
$ touch foo.pyc
$ mkdir bar
$ touch bar/bar.pyc
$ echo "\.pyc$" > .hgignore
$ hg st
? .hgignore

请注意,“。pyc $”将忽略“foopyc”,因为未转义的点匹配任何字符。同样,“。pyc”将匹配“foo.pyche.bar”

如果您不喜欢正则表达式语法,则可以切换到全局变量。
例如,Mercurial存储库中的当前.hgignore开头为:
syntax: glob

*.elc
*.orig
*.rej
*~
*.mergebackup
*.o
*.so
*.pyd
*.pyc
*.swp
*.prof
\#*\#
.\#*

一切都在man 5 hgignore中进行了说明

关于mercurial - 如何获取.hgignore模式以应用于子目录?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/4532258/

10-13 07:44