8

我开始了一个项目并将其添加到 Mercurial。但我只想*.cs在版本控制下获取文件。所以我必须添加bin, obj, sln, suo,_resharper文件夹等来忽略模式。

如何让 Hg 只监控某些类型的文件,如白名单?如何在 Subversion 中做到这一点?

4

3 回答 3

8

只需在.hgignore遇到它们时将扩展名添加到文件中:

syntax: glob
*.bin
*.obj

等等。这不是很多工作,它向世界其他地方准确记录了您认为对修订控制不重要的文件类型。

您甚至可以设置一个全局忽略文件,请参阅部分ignore中的条目[ui]

试图.hgignore通过使用负前瞻正则表达式和其他巫术来颠倒(在我看来)不是一个好主意。它几乎肯定不会起作用,只会导致混乱。这是因为将给hg路径名的所有前缀与. 所以像这样的文件.hgignore

a/b/c.cs

如果有任何一个将被忽略

a/b/c.cs
a/b
a

.hgignore与您文件中的规则匹配。特别是,这意味着您不能使用否定的前瞻表达式来a/b/c.cs忽略 - 规则将匹配a/bor a

于 2009-08-27T10:35:57.733 回答
1

关于 Martin Geisler ( https://www.mercurial-scm.org/bts/issue712 )提供的 Mercurial 问题的链接,请注意该问题不是技术难度之一,而是支持:

这是一个古老且反复出现的功能请求,我在创建此错误之前就拒绝了。我已经编写并支持了一些包含/排除文件语法,并决定我宁愿对 1% 的用户说“不,你不能那样做”,而不是反复说“不,你读错了文档” 20% 的用户。——Matt Mackall(Mercurial 的开发者)

于 2011-11-03T20:20:11.150 回答
-2

.hgignore使用这些内容向您的存储库添加一个名为的文件。

syntax: regexp

^\.cs

Subversion 不允许您使用正则表达式来忽略文件,只能使用glob 语法的子集来匹配文件/目录名称。我不知道如何制作不以 .cs 结尾的忽略文件,所以我在网上搜索,这个网页说:

svn propset svn:ignore "*[!c][!s]
*.cs?*" .

谨慎使用:)

编辑:马丁盖斯勒是对的,我错了,正则表达式语法是错误的。我道歉。有正确的概念,但没有元字符...... :(

于 2009-08-27T03:15:30.853 回答