2009-11-05 17 views
17

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

为了明显的目的,我有一个包含“default.png”的“媒体”目录,其余目录将保存用户媒体。我们希望hg忽略除默认文件之外的媒体目录中的所有内容。

回答

25

尝试:

syntax: regex 
^media/.* 

或(留在默认的水珠,做)

media/** 

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

在mercurial(与CVS不同)中,您可以添加符合忽略模式的文件,并且它们可以正常工作。因此,请广泛地忽略,并且要跟踪您想要的内容。

+1

这可以工作,但它需要你手动添加你想要的文件,如果你添加一个匹配模式的新文件(如果你匹配* .c例如),hg不会注意到。 – frankster 2012-03-07 17:45:15

+0

完全属实。我仍然比较喜欢负面展望的东西,但不是每个人都会这样做。就我个人而言,我只是确保我的临时文件和我的东西保留在不同的目录中,所以我不必担心它。 – 2012-03-08 03:18:13

4

没关系这似乎工作...

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

这也符合default.png.sadkjsdhfdshfjkds – frankster 2012-03-07 17:43:54

+0

是的,需要一个“$ '最后确定。看到你的答案。 – 2012-03-08 00:02:08

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

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

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

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

总结它作为一个BKM(已知的最佳方法)

要么hgignore一切,然后汞柱加回你想跟踪的几个文件。

或者使用模式,如

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

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

+1

如何指定多个文件? – m4l490n 2017-03-13 17:35:04

相关问题