Dan*_*ric 11 regex cvs mercurial glob hgignore
我正在使用Mercurial,我有以下结构:
files
test
demo.jpg
video.flv
video.doc
sport
demo2.jpg
picture.jpg
text.txt
demo3.jpg
demofile3.doc
Run Code Online (Sandbox Code Playgroud)
我想创建一个glob过滤器,它只忽略所有目录中作为"files"目录子项的所有"jpg"文件
我尝试使用files/*.jpg,但它不起作用.
任何意见,将不胜感激.
Chr*_*ley 16
这对我有用..
syntax: regexp
files/.*/.*jpg
Run Code Online (Sandbox Code Playgroud)
你自己的解决方案看起来更像是一个glob.其中的诀窍是使用**语法来允许子目录.看到这个......
这个glob也适合我
**/files/**/*.jpg
Run Code Online (Sandbox Code Playgroud)
就个人而言,我总是会使用glob syntx来解决这类问题.一旦你了解了**语法,就比正则表达式更容易遵循模式试图做的事情.
Mar*_*ler 12
如果您乐意忽略"名为files"的任何目录中的所有JPG文件,那么请使用
syntax: glob
files/**.jpg
Run Code Online (Sandbox Code Playgroud)
查看hg help patterns哪个解释**是跨越目录分隔符的glob运算符.这意味着该文件
files/test/demo.jpg
Run Code Online (Sandbox Code Playgroud)
匹配files/**.jpg.
但是,请注意glob模式都没有根深蒂固.这意味着一个名为的文件
test/files/demo.jpg
Run Code Online (Sandbox Code Playgroud)
也将被忽略,因为它在删除test/前缀后匹配模式.
如果您对此有疑问,则需要使用正则表达式.在该语法中,模式读取
syntax: regex
^files/.*\.jpg
Run Code Online (Sandbox Code Playgroud)
我通常不会担心根模式 - 我更喜欢glob模式的简单性.但是很高兴知道如果你真的需要你可以根据忽略模式.