如何忽略Mercurial中的文件夹下的所有内容
我正在寻找.hgignore文件的expression式,以忽略指定文件夹下的所有文件。
例如:我想忽略bin下面的所有文件和文件夹
其实任何关于如何形成表情的build议都会很棒
交替:
syntax: glob bin/**
我做了一些实验,发现Windows上的正则expression式适用于从当前版本库开始的path,反斜杠被转换为斜线。
因此,如果您的存储库位于E:\ Dev中,则hg status
将针对foo / bar / file1.c等应用这些模式。 锚适用于这条道路。
所以:
- Glob适用于path元素,并植根于元素部分
- foo匹配任何名为foo的文件夹(或文件)(而不是“foobar”或“barfoo”)
- * foo *匹配任何名称中带有“foo”的文件夹或文件
- foo / bar *匹配以“bar”开始的“foo”文件夹中的所有文件
- 正则expression式区分大小写,而不是锚定
- 当然,反斜杠的特殊字符就好比。 (点)
- Windows上的/ matches \ path分隔符。 \不匹配这个分隔符…
- foo与“foo”中的所有文件和文件夹相匹配
- foo /只匹配以“foo”结尾的文件夹
- / foo /与path中某处的文件夹“foo”匹配
- / foo / bar /与path中某处文件夹“foo”中的文件夹“bar”匹配
- ^ foo匹配存储库根目录下由foo开始的文件或文件夹
- foo $匹配以foo结尾的文件
我希望这会有所帮助,我发现HGIGNORE(5)页面有点简洁。
这两个也将过滤出一个名为cabin
,这可能不是你想要的目录。 如果您要过滤顶层,则可以使用:
^/bin/
对于根目录下的bin
目录,可以省略^。 没有必要指定语法,regexp是默认的。
没关系,我明白了
syntax: regexp bin\\*
expression式遵循标准的perl正则expression式语法。
忽略.class文件
syntax: regexp ?\.class
语法:glob bin / **
这个答案如上所示,但是我也想补充说*和**的处理方式是不同的。 **是recursion的,*不是。
看到Hg模式