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

时间:2009-11-05 03:09:41

标签: mercurial hgignore

有人能告诉我.hgignore模式来跟踪目录中的一个特定文件并忽略其他所有文件吗?

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

4 个答案:

答案 0 :(得分:25)

尝试:

syntax: regex
^media/.*

或(将其保留在默认的glob中并执行)

media/**

然后手动hg add media/default.png

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

答案 1 :(得分:6)

syntax: regex
^media/(?!default.png$)

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

如果你想允许任何.c文件,你可以使用:

^media/(?!.+\.c$)

答案 2 :(得分:5)

将其总结为BKM(最佳已知方法)

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

或使用

等模式
syntax: regex
^path/(?!files-that-you-want-not-to-ignore$)

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

答案 3 :(得分:4)

没关系,这似乎有用......

syntax: regex
^media/(?!default.png)