当我使用 svn:ignore
从 SVN 中排除文件时然后另一个人尝试提交排除的文件, svn 阻止他?或者他必须在他的电脑上执行相同的命令?
最佳答案
想象一下,如果您有一堆 Java 文件( *.java
)。这些被编译成 *.class
文件。已编译 *.class
文件不应存储在 Subversion 中。
现在,想象一个开发人员创建了一堆新的 *.java
文件,编译它们,对结果很满意,然后这样做:
$ svn add *
在这种情况下,Subversion 会愉快地添加所有已编译的
*.class
文件。不是你想要的...svn:ignore
属性位于要忽略文件的目录中。当且仅当文件不在 Subversion 中时,如果文件与 svn:ignore
匹配,该文件将不会显示。文件上的 glob 模式,用户执行 svn status
或 svn add
与外卡。与
svn status
命令,这些文件不会显示 ?
标记在输出行的开头。如果用户尝试使用通配符添加,Subversion 将忽略这些文件。在上述场景中,如果开发人员这样做:
$ svn add *
svn:ignore
属性将阻止 *.class
文件被添加。但是,如果用户专门添加了一个被忽略的文件:
$ svn 添加 foo.class
然后,Subversion 不会忽略该文件。而且,一旦将其添加到存储库中,如果文件被更改或删除,Subversion 将报告它。
svn:ignore
属性对所有 checkout 该目录版本的用户可见。这是防止意外添加文件的好方法,但它不能阻止某人实际添加它们。我有一个 pre-commit hook这可以让事情更进一步。有了它,您可以防止用户将特定文件添加到存储库中。您还可以强制用户设置
svn:ignore
当他们创建一个新目录时。
关于svn:ignore 是本地计算机吗?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9489022/