Android 如何在Mercurial中忽略除一个子文件夹以外的文件夹

Android 如何在Mercurial中忽略除一个子文件夹以外的文件夹,android,regex,mercurial,bitbucket,hgignore,Android,Regex,Mercurial,Bitbucket,Hgignore,我正在使用Mercurial,我想忽略所有名为“build”的文件夹(我有两个),但有一个例外-我想包括文件夹“build/outputs/mapping/release” 我尝试将“build/*”添加到.hgignore,并使用它手动将子文件夹添加到我的存储库中 hg添加构建/输出/映射/发布 但它不起作用 知道如何在.hgignore文件中执行此操作吗?Git支持“取消忽略”以前列出的忽略项的概念,以后的项将覆盖以前的项。Mercurial没有,所以你必须想出能涵盖你的情况的表达方式 您提

我正在使用Mercurial,我想忽略所有名为“build”的文件夹(我有两个),但有一个例外-我想包括文件夹“build/outputs/mapping/release”

我尝试将“build/*”添加到.hgignore,并使用它手动将子文件夹添加到我的存储库中 hg添加构建/输出/映射/发布 但它不起作用


知道如何在.hgignore文件中执行此操作吗?

Git支持“取消忽略”以前列出的忽略项的概念,以后的项将覆盖以前的项。Mercurial没有,所以你必须想出能涵盖你的情况的表达方式

您提到有两个特定的目录要忽略,因此您可以简单地列出它们,而不是使用模式:

^build/ignore1/
^build/ignore2/

比如说。对于更复杂的情况,您可以枚举它们,或者像您在中所做的那样,找到与所需路径匹配的模式。

您是否尝试过
build/[a-n,p-z]*
而不是
build/*
?我添加了“build/[^o]”build/output/[^m]”但我希望有更优雅的……不确定您正在做什么,但是您可以显式地添加build/outputs/mapping/release的内容。因此,例如,如果您想跟踪对该文件夹的更改,您可以在脚本中执行类似“hg addrem build/outputs/mapping/release/*”的操作,但它似乎不起作用。我尝试了“生成”^build/outputs,输出为ignored@AsafPinhassi:这正是您应该期望的:
^build/outputs
忽略以
build/outputs
开头的任何内容。如果您不想要
构建/输出中的某些内容,并且您不想要;你说你想保留
生成/输出/映射/发布/
,那么你不能使用
^build/outputs
,但是你可以使用,例如,
^build/outputs/ignorethis/
加上
^build/outputs/other/