自动添加svn:needs-lock

Sav*_*sis 21 svn svn-propset

嗨,我想知道SVN服务器是否有办法在任何二进制文件而不是文本文件上自动分配svn:needs-lock属性.

我们有一个相当小的开发团队,但是每个人都要记住在新创建的二进制文件上设置这个属性是没有意义的,因为它很容易忘记这样的事情.

bah*_*rep 22

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=*
Run Code Online (Sandbox Code Playgroud)

  • 如果 * 是通配符,如果您想简单地将 need-lock 应用于所有文件类型,* = svn:needs-lock=* 会起作用吗? (2认同)
  • @JonathonCowley我现在已经用TortoiseSVN 1.8.7(SVN 1.8.9)对其进行了测试,并将 `svn:auto-props` 设置为 `* = svn:needs-lock=*` 完全符合您的要求,即“将“需要锁定”应用到您设置该属性的文件夹下的所有文件。 (2认同)

Ste*_*fan 14

编辑svn配置文件并为auto props添加条目或使用svn:auto-propsSVN 1.8和更新客户端的版本化属性.阅读SVNBook!

编辑:

从SVN 1.8,您可以将该svn:auto-props属性应用于存储库的根路径.请参阅此发行说明和更新的SVNBook 1.8章节.

  • 谨防!您必须分别在每个SVN客户端上配置自动道具.服务器无法自动应用需求锁定,至少从svn 1.7开始. (3认同)
  • TSVN有tsvn:auto-props属性,用于此:http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-dug-propertypage.html#tsvn-dug-propertypage-tsvn-props (2认同)

Eva*_*van 5

需要说明的是,必须在每个正在使用的SVN客户端上配置自动道具方法.因此,当您在新计算机上设置新开发人员或现有开发人员时,您必须记住执行此配置.

如果你们都使用TortoiseSVN,你可以在每个结账的基础文件夹上设置tsvn:autoprops属性,所有TortoiseSVN客户都会尊重它.

如果你真的想要它,你需要在每个存储库中放置一个预提交钩子.该执法脚本可以很容易地加工成型的这一点.

如果您有任何蟒福,RepoGuard(继任者SVNChecker)看起来可能是有用的.

无论你选择哪一个,我都认为没有办法将该属性追溯应用于存储库中的现有文件.但是,您可以在下次提交文件时强制执行它.