【问题标题】:ignoring folders in mercurial忽略mercurial中的文件夹
【发布时间】:2008-11-21 20:37:35
【问题描述】:

警告: 我尝试了此处列出的所有可能性:How can I ignore everything under a folder in Mercurial.
没有一个像我希望的那样工作。

我想忽略文件夹test 下的所有内容。但不要忽视srcProject\test\TestManager

我试试

syntax: glob
test/**

它会忽略testsrcProject\test\TestManager

与:

syntax: regexp
^/test/

都是一样的。

还有:

syntax: regexp
test\\*

我已经在 Windows 中安装了 TortoiseHG 0.4rc2 和 Mercurial-626cb86a6523+tortoisehg、Python-2.5.1、PyGTK-2.10.6、GTK-2.10.11

【问题讨论】:

    标签: regex mercurial hgignore


    【解决方案1】:

    尝试在正则表达式版本中插入符号后不加斜线。

    ^test/
    

    这是一个测试:

    ~$ mkdir hg-folder-ignore
    ~$ cd hg-folder-ignore
    ~/hg-folder-ignore$ echo '^test/' > .hgignore
    ~/hg-folder-ignore$ hg init
    ~/hg-folder-ignore$ mkdir test
    ~/hg-folder-ignore$ touch test/ignoreme
    ~/hg-folder-ignore$ mkdir -p srcProject/test/TestManager
    ~/hg-folder-ignore$ touch srcProject/test/TestManager/dont-ignore
    ~/hg-folder-ignore$ hg stat
    ? .hgignore
    ? srcProject/test/TestManager/dont-ignore
    

    请注意,ignoreme 没有出现,而 dont-ignore 出现了。

    【讨论】:

    • @JaKXz 是的,这适用于 Mercurial 的所有版本。你在.hgignore 中的内容没有通过。确保您的忽略文件被解释为正则表达式而不是 glob,并且不要指望忽略忽略您已经 hg added 的文件。忽略只会影响未添加文件的列出/处理方式。
    • 等。我找到的解决方案是使用这个:syntax: regexp ^SourceFolder\bin ^SourceFolder\gen 和一个名为 .classpath 的文件:^SourceFolder\.classpath
    【解决方案2】:

    这两种情况都对我有用(在 linux 和 windows 上):

    syntax: regexp
    ^backup/     #root folder
    nbproject/   #any folder
    

    syntax: glob
    ./backup/*   #root folder
    nbproject/*  #any folder
    

    但是,在我将 .hgignore 文件的链接添加到我的 repo 中的 .hgrc 文件之前:

    [ui]
    ignore = .hg/.hgignore
    

    另外值得一提的是,mercurial 会忽略它当前未跟踪的文件,这些文件是在您将其配置为忽略它们之前添加的。所以,不要被 hg status 推迟,说一些文件是 M(修改)或! (丢失)在您刚刚添加到忽略列表的文件夹中!

    【讨论】:

    • .hgignore 通常在存储库的根目录下,而不是在.hg 下。
    【解决方案3】:

    您可以使用零宽度负前瞻和后瞻断言来指定您要忽略 test,仅当它前面没有 srcProject 并且后面没有 TestManager 时:

    syntax: regexp
    (?<!srcProject\\)test\\(?!TestManager)
    

    Mercurial 使用 Python 正则表达式,因此您可以在 Python 文档中找到有关零宽度断言的更多信息:https://docs.python.org/library/re.html#regular-expression-syntax

    【讨论】:

    • 比解决一个简单问题所需的复杂得多。 Ry4an 的解决方案以更简单的方式完成了同样的任务。
    【解决方案4】:

    在仓库根目录下创建.hgignore文件

    现在在文件中添加以下内容。

    语法:glob

    bin/**

    *.DS_Store

    这将从存储库中删除 bin 目录和所有 *.DS_Store 文件

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-10-02
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-01-11
      • 1970-01-01
      相关资源
      最近更新 更多