嗨,我想知道SVN服务器是否有办法在任何二进制文件而不是文本文件上自动分配svn:needs-lock属性.
我们有一个相当小的开发团队,但是每个人都要记住在新创建的二进制文件上设置这个属性是没有意义的,因为它很容易忘记这样的事情.
Apache Subversion 1.8引入了Repository Dictated Configuration功能,该功能需要SVN 1.8客户端,但不需要1.8服务器,因为这是客户端功能.
使用Subversion 1.8,您可以使用新的Subversion svn:auto-props
继承属性在存储库中配置自动道具模式.
例如,将svn:auto-props
值设置为*.exe = svn:needs-lock=*
存储库根目录(或表示项目根目录的存储库路径)的属性.这将导致每个新添加的*.exe文件都svn:needs-lock=*
应用了属性.
您可以在Subversion属性中存储多行值,因此您可以将以下标准svn:needs-lock和MIME模式添加到svn:auto-props
:
*.bmp = svn:mime-type=image/bmp;svn:needs-lock=* *.gif = svn:mime-type=image/gif;svn:needs-lock=* *.ico = svn:mime-type=image/x-icon;svn:needs-lock=* *.jpeg = svn:mime-type=image/jpeg;svn:needs-lock=* *.jpg = svn:mime-type=image/jpeg;svn:needs-lock=* *.png = svn:mime-type=image/png;svn:needs-lock=* *.tif = svn:mime-type=image/tiff;svn:needs-lock=* *.tiff = svn:mime-type=image/tiff;svn:needs-lock=* *.doc = svn:mime-type=application/x-msword;svn:needs-lock=* *.docx = svn:mime-type=application/x-msword;svn:needs-lock=* *.jar = svn:mime-type=application/octet-stream;svn:needs-lock=* *.odc = svn:mime-type=application/vnd.oasis.opendocument.chart;svn:needs-lock=* *.odf = svn:mime-type=application/vnd.oasis.opendocument.formula;svn:needs-lock=* *.odg = svn:mime-type=application/vnd.oasis.opendocument.graphics;svn:needs-lock=* *.odi = svn:mime-type=application/vnd.oasis.opendocument.image;svn:needs-lock=* *.odp = svn:mime-type=application/vnd.oasis.opendocument.presentation;svn:needs-lock=* *.ods = svn:mime-type=application/vnd.oasis.opendocument.spreadsheet;svn:needs-lock=* *.odt = svn:mime-type=application/vnd.oasis.opendocument.text;svn:needs-lock=* *.pdf = svn:mime-type=application/pdf;svn:needs-lock=* *.ppt = svn:mime-type=application/vnd.ms-powerpoint;svn:needs-lock=* *.ser = svn:mime-type=application/octet-stream;svn:needs-lock=* *.swf = svn:mime-type=application/x-shockwave-flash;svn:needs-lock=* *.vsd = svn:mime-type=application/x-visio;svn:needs-lock=* *.xls = svn:mime-type=application/vnd.ms-excel;svn:needs-lock=* *.zip = svn:mime-type=application/zip;svn:needs-lock=*
编辑svn配置文件并为auto props添加条目或使用svn:auto-props
SVN 1.8和更新客户端的版本化属性.阅读SVNBook!
编辑:
从SVN 1.8,您可以将该svn:auto-props
属性应用于存储库的根路径.请参阅此发行说明和更新的SVNBook 1.8章节.
需要说明的是,必须在每个正在使用的SVN客户端上配置自动道具方法.因此,当您在新计算机上设置新开发人员或现有开发人员时,您必须记住执行此配置.
如果你们都使用TortoiseSVN,你可以在每个结账的基础文件夹上设置tsvn:autoprops属性,所有TortoiseSVN客户都会尊重它.
如果你真的想要它,你需要在每个存储库中放置一个预提交钩子.该执法脚本可以很容易地加工成型的这一点.
如果您有任何蟒福,RepoGuard(继任者SVNChecker)看起来可能是有用的.
无论你选择哪一个,我都认为没有办法将该属性追溯应用于存储库中的现有文件.但是,您可以在下次提交文件时强制执行它.