.hgignore除一个特定文件外的整个目录树

Joh*_*Mee 17 mercurial hgignore

任何人都可以告诉我.hgignore模式来跟踪目录中的一个特定文件并忽略其他所有内容吗?

我有一个"media"目录,其中包含一个"default.png",出于显而易见的目的,该目录的其余部分将保存用户媒体.我们希望hg忽略媒体目录中除默认文件之外的所有内容.

Ry4*_*ase 25

尝试:

syntax: regex
^media/.*
Run Code Online (Sandbox Code Playgroud)

或(保留在默认的glob中)

media/**
Run Code Online (Sandbox Code Playgroud)

然后手动hg add media/default.png.

在mercurial中(与CVS不同),您可以添加与您的忽略模式匹配的文件,它们可以正常工作.因此,请大致忽略hg add您想要跟踪的内容.


fra*_*ter 6

syntax: regex
^media/(?!default.png$)
Run Code Online (Sandbox Code Playgroud)

与John Mee几乎相同,但匹配到行尾,而不是以default.png开头的任何内容.

如果你想允许任何.c文件但没有别的,你可以使用:

^media/(?!.+\.c$)
Run Code Online (Sandbox Code Playgroud)


Kra*_*lew 5

总结为BKM(最知名的方法)

要么hgignore一切,然后hg添加你想要跟踪的几个文件.

或者使用诸如的模式

syntax: regex
^path/(?!files-that-you-want-not-to-ignore$)
Run Code Online (Sandbox Code Playgroud)

(我只想在一个地方看到完整的答案.)