svn:忽略本地到计算机?
当我从SVN中排除文件与svn:忽略,然后另一个人尝试提交排除的文件,svn阻止他?
不,SVN:忽略只定义文件的模式(S),其中,如果未经跟踪和存在内WC,将从svn status
svn add *
输出进行过滤,他必须做他的电脑里有同样的命令?
的svn:忽略是版本文件夹的属性,存储的,与其他版本的数据,在储存库。如果您提交此数据并将其他WC更新到本版本(或更高版本),则其WC中的文件夹将具有相同的svn:ignore属性设置
ignore属性不会阻止任何人添加文件。它只能防止在执行诸如“svn status”之类的操作时将与该模式匹配的文件列表列为“未知”。
但是,它必须提交到存档以供所有用户看到。
想象一下,如果你有一堆Java文件(*.java
)。这些被编译成*.class
文件。已编译的*.class
文件不应存储在Subversion中。
现在,想象一下谁创造了一堆新*.java
文件,编译了他们是满意的结果,并没有这样的开发商:
$ svn add *
在这种情况下,Subversion会欢快地添加在所有的编译*.class
文件。不是你想要的...
svn:ignore
属性在您要忽略文件的目录上。如果并且只有当文件不在Subversion中时,如果文件匹配文件上的svn:ignore
全局模式,并且用户使用通配符执行svn status
或svn add
,则文件不会显示。
使用svn status
命令,这些文件不会在输出行的开头显示?
标记。如果用户试图添加通配符,Subversion将忽略这些文件。
在上述情况下,如果开发人员这样做:
$ svn add *
的svn:ignore
属性将阻止*.class
文件被添加。
但是,如果一个用户专门增加了一个被忽略的文件:
$ SVN添加让Foo.class
然后,Subversion会不会忽略该文件。而且,一旦将其添加到存储库中,如果文件被更改或删除,Subversion将报告它。
svn:ignore
属性对签出该目录版本的所有用户都可见。这是防止意外添加文件的好方法,但它不能阻止某些人实际添加文件。
我有一个pre-commit hook可以让事情更进一步。有了它,您可以阻止用户将特定文件添加到存储库中。您也可以强制用户在创建新目录时设置svn:ignore
。
如果您提交属性所在的文件夹,则当其他人svn更新文件在他的WC中也将被忽略。 – prodigitalson 2012-02-28 20:19:00