【问题标题】:Hgignore everything except, regardless of directory忽略除目录之外的所有内容
【发布时间】:2011-07-19 18:27:06
【问题描述】:

我已经看到了 hgignore 的帖子,但我似乎无法将正则表达式转换为与 子目录 一起使用。

syntax: regexp
(?<!\.cfm)$

适用于根目录,但不适用于 subdirs/subsubdirs。我不想手动指定这些。

这是我看到的没有忽略:

>hg stat
? document.cfm
? document.txt
? subdir1\document.cfm
? subdir1\document.txt
? subdir1\subsubdir1\document.cfm
? subdir1\subsubdir1\document.txt
? subdir2\document.cfm
? subdir2\document.txt

这就是我看到的忽略:

>hg stat
M .hgignore
? document.cfm

这是我想要看到的:

>hg stat
? document.cfm
? subdir1\document.cfm
? subdir1\subsubdir1\document.cfm
? subdir2\document.cfm

【问题讨论】:

    标签: mercurial


    【解决方案1】:

    添加文件会覆盖忽略,因此对于 .hgignore,如果您已经添加了它,则无需担心包含它。这使这变得容易得多。

    syntax: regexp
    (?<!\.cfm)$
    

    假设您试图做的是忽略除.cfm 文件之外的所有内容。示例:

    % hg stat --all
    A .hgignore
    I adir/file.cfm
    

    一般来说,不要使正则表达式行过于复杂 - 如果您(不)忽略两个不同类别的事物,请使用两行。

    【讨论】:

    • 在您的 stat 命令中,file.cfm 是 I for Ignored。我希望我的子目录 .cfm 文件是?未知,不被忽视。这个正则表达式只抓取当前级别的目录项。
    • 对不起,你能不能把原来的问题修改一下,清楚地描述你想忽略什么和不想忽略什么,最好有例子,我们可以很快解决这个问题。
    • 我不确定这是否可能从 python 如何只进行固定宽度的负查找来判断..
    【解决方案2】:

    所需的操作是不可能的。 Python 只进行固定宽度的负查找。结束这个问题。感谢任何研究它的人。

    【讨论】:

    • 我认为这个答案要么具有误导性,要么是错误的,要么是过时的。 Python 绝对支持负前瞻 (?!.*foo),但它不支持 (?&lt;!foo.*)。请更新您的答案以反映这一点。
    猜你喜欢
    • 1970-01-01
    • 2015-05-02
    • 1970-01-01
    • 1970-01-01
    • 2010-11-17
    • 2012-08-17
    • 2013-09-26
    • 2018-09-17
    • 1970-01-01
    相关资源
    最近更新 更多