我开始了一个项目并将其添加到 Mercurial。但我只想*.cs
在版本控制下获取文件。所以我必须添加bin
, obj
, sln
, suo
,_resharper
文件夹等来忽略模式。
如何让 Hg 只监控某些类型的文件,如白名单?如何在 Subversion 中做到这一点?
我开始了一个项目并将其添加到 Mercurial。但我只想*.cs
在版本控制下获取文件。所以我必须添加bin
, obj
, sln
, suo
,_resharper
文件夹等来忽略模式。
如何让 Hg 只监控某些类型的文件,如白名单?如何在 Subversion 中做到这一点?
只需在.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/b
or a
。
关于 Martin Geisler ( https://www.mercurial-scm.org/bts/issue712 )提供的 Mercurial 问题的链接,请注意该问题不是技术难度之一,而是支持:
这是一个古老且反复出现的功能请求,我在创建此错误之前就拒绝了。我已经编写并支持了一些包含/排除文件语法,并决定我宁愿对 1% 的用户说“不,你不能那样做”,而不是反复说“不,你读错了文档” 20% 的用户。——Matt Mackall(Mercurial 的开发者)