首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >hgignore中奇怪的否定先行处理

hgignore中奇怪的否定先行处理
EN

Stack Overflow用户
提问于 2012-05-03 22:20:38
回答 1查看 255关注 0票数 1

在一个巨大的源码树中,我希望Mercurial只跟踪一个子文件夹。

代码语言:javascript
复制
specific/component/subfolder

在任何像样的正则表达式工具(Regex Coach、regexpal.com)中,以下内容是绝对足够的(并且可以理解)

代码语言:javascript
复制
^(?!specific/component/subfolder).+

与此同时,.hgignore坚持让

代码语言:javascript
复制
^(?!extras).+
^extras/(?!extensions).+
^extras/extensions/(?!sharing).+

一旦我把斜杠放到lookahead组中,什么都不能通过。

在说这是一个bug之前(也许是另一个自主开发的regex解析器?)我问集体智慧:-)

关于hgignore到底想要什么的间接线索的信用

Honing the .hgignore file using a negative lookahead

EN

回答 1

Stack Overflow用户

发布于 2012-05-03 23:53:41

只是不要在.hgignore中使用负向先行。真的。每次有人在Stack Overflow中建议它时,我都会插话,让他们知道它不能很好地工作,因为它不是一个预期的功能。如果Mercurial的.hgignore文件被认为是一个白名单系统,那么它就会有一个真正的白名单语法。这是一个黑名单,应该这样使用。

负向先行语法几乎是有效的,因为它不是自家开发的正则表达式解析器--它是内置在python中的语法,并且不遗余力地禁用负向先行语法看起来有点过分,但也许是更好的选择。

比使用永远不会让你满意的负面展望处理更好的两个解决方案:

  • 只需将存储库下移一级--下移到您实际想要跟踪的文件夹中--或者--将所有内容列入黑名单,然后'hg

‘您想要跟踪的文件-- add

  • --add overrides忽略

我是认真的。这不是一个预期的功能,它永远不会很好地工作,但由于向后兼容性的原因不能删除。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/10433342

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档