Subversion - 我可以在服务器端设置自动道具吗?

Subversion - 我可以在服务器端设置自动道具吗?

我正在维护一个 SVN 服务器,用户需要提交许多 Adob​​e Illustrator 文件(即*.ai)。我可以使用其配置中的自动属性将其设置为二进制文件,这样它就不会出现在邮件列表提交中。但是我想让这尽可能简单。我可以在 SVN 服务器配置中设置什么,以便它(即服务器)自动设置正确的svn:mime-type

答案1

这不可能。长期以来功能要求用于向客户端广播配置。目前要到 2.0 或更高版本才能实现。

最接近的做法是使用钩子。要么使​​用预提交来防止配置错误的客户端提交错误数据。要么使用后提交来修复错误数据。

两者都不是很好,我认为后者甚至是不被建议的。

答案2

Apache Subversion 1.8 引入了存储库指定配置需要的功能SVN 1.8 客户端. (换句话说,不需要 1.8 服务器)。

使用 Subversion 1.8,您可以使用新的 Subversion 在存储库中配置自动属性模式svn:auto-props继承财产

例如,将存储库根目录(或代表项目根目录的存储库路径)的属性值svn:auto-props设置为*.bmp = svn:mime-type=image/bmp每个新增位图文件以自动应用 MIME 类型。

您可以在 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/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=*

答案3

虽然这个问题没有很好的答案,但你可以使用svn_apply_autoprops.py我编写它是为了将您的标准自动道具应用到工作副本中,以使那里的所有文件都符合要求。

相关内容