当前位置:  开发笔记 > 开发工具 > 正文

如何忽略Mercurial中文件夹下的所有内容

如何解决《如何忽略Mercurial中文件夹下的所有内容》经验,为你挑选了3个好方法。

我正在寻找.hgignore文件的表达式,以忽略指定文件夹下的所有文件.

例如:我想忽略bin下面的所有文件和文件夹

实际上,关于如何形成表达式的任何建议都会很棒



1> Ry4an Brase..:

交替:

syntax: glob
bin/**


`bin``bin /``bin/*``bin/**` - 所有对glob都做同样的事情,即忽略所有名为bin的目录和子目录,但不是任何文件名bin.txt或bin1.asterix有什么意义?

2> PhiLho..:

我做了一些实验,我发现Windows上的正则表达式语法适用于从当前存储库开始的路径,反斜杠转换为斜杠.

因此,如果您的存储库位于E:\ Dev中,hg status则会对foo/bar/file1.c等应用模式.锚点适用于此路径.

所以:

Glob适用于路径元素,并且根植于元素部分

foo匹配任何名为foo的文件夹(或文件)(不是"foobar"或"barfoo")

*foo*匹配名称中带有"foo"的任何文件夹或文件

foo/bar*匹配以"bar"开头的"foo"文件夹中的所有文件


正则表达式区分大小写,而不是锚定

当然,反斜杠正则表达式的特殊字符就像.(点)

/匹配Windows上的路径分隔符.\与此分隔符不匹配...

foo匹配所有文件和文件夹里面有"foo"

foo /仅匹配以"foo"结尾的文件夹

/ foo /匹配路径中某处的文件夹"foo"

/ foo/bar /匹配路径中某处文件夹"foo"中的文件夹"bar"

^ foo匹配存储库根目录下的foo文件或文件夹

foo $匹配以foo结尾的文件

我希望这会有所帮助,我发现HGIGNORE(5)页面有点简洁.



3> Derek Slager..:

这两个也将过滤掉一个名为的目录cabin,这可能不是你想要的.如果您要过滤顶级,则可以使用:

^/bin/

对于binroot下面的目录,可以省略^.无需指定语法,regexp是默认语法.


这不会忽略任何事情.插入符只表示repo root中的内容,但是前导斜杠只捕获了repo根目录中的dirs.
推荐阅读
落单鸟人
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有