gpt4 book ai didi

mercurial - 忽略除 Mercurial 中特定文件类型的一个或多个文件之外的所有文件?

转载 作者:行者123 更新时间:2023-12-02 00:28:07 25 4
gpt4 key购买 nike

gitignore: Ignore all files in folder hierarchy except one specific filetype 相同的问题,但对于 Mercurial。

我希望 .hgignore 忽略除来自特定文件类型的一个或多个文件之外的所有文件,例如只允许 *.java 的文件*.class 要跟踪的文件类型,在当前目录和子目录中。

例如,在以下目录中:

A.java
a.txt
a.png
A.class
B/C.java
B/G/H/h.png
B/C.class
D/E/F.java

我只想包含以下文件(包括目录结构):

A.java
A.class
B/C.java
B/C.class
D/E/F.java

(是否创建包含h.png的目录并不重要。)

我已经尝试应用和更改上述问题中提到的相同原则(但适用于 Mercurial),以及尝试应用问题 How can I ignore all directories except one using .hgignore? 中的原则, 没有任何运气。

编辑:我用上面提到的目录树尝试了以下内容

$ hg stat
? A.class
? A.java
? B/C.class
? B/C.java
? B/G/H/h.png
? D/E/F.java
? a.png
? a.txt
$ hg add -I "**.{class, java}"
adding A.class
adding A.java
adding B/C.class
adding B/C.java
adding D/E/F.java

这给了我想要的结果。如何创建一个 .hgignore 或配置文件,为每个 addcommit(以及类似的查询)?

最佳答案

试试这个:

syntax: regexp
.*\.(?!java$|class$)

或者更好:

syntax: regexp
.*\.(?!java$|.*\.java$|class$|.*\.class$)

它也会匹配奇怪的东西,比如“a..java”或“a.java.java”。

编辑:这是一个修改后的解决方案,结合了 Søren 的技巧和我的一些进一步调整。我希望误报例如“ajava”或“java”之类的东西没有被忽略,现在已修复。

syntax: regexp
\.(?!java$|class$)[^.]+$
(?<!\.)java$
(?<!\.)class$

关于mercurial - 忽略除 Mercurial 中特定文件类型的一个或多个文件之外的所有文件?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8078290/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com