在SVN中管理二进制文件版本控制的好方法

时间:2011-11-08 13:31:00

标签: svn binaryfiles

我在Xcode中使用XIB文件。它是XML文件,但实际上它不是一个简单的源代码,它的内部结构被组织为分层引用。如此简单的差异/合并模型永远不会起作用。

问题是SVN将XIB文件视为简单的文本源代码文件。我必须避免这种情况。如何强制SVN始终将这些文件作为二进制行为处理。 (锁定/解锁模型)

2 个答案:

答案 0 :(得分:4)

如果您确实需要强制SVN将某些文件视为二进制文件,请尝试设置此属性:

svn propset svn:mime-type application/octet-stream filename

阅读How does Subversion handle binary files?了解详情。

答案 1 :(得分:1)

正如Cedric Julien所说,您需要在文件上设置属性svn:mime-type以确保它被视为二进制文件。 Subversion查看文件的前X个字节,以确定它是二进制还是文本,有时它不能一直工作。我知道PDF文件也会让人感到困惑。

您需要使用预提交挂钩来确保开发人员将这些文件存储为二进制文件。开发人员可以使用自动属性来帮助他们自动在XIB和NIB上设置svn:mime-type属性,但是仍然需要预提交钩子来验证此属性是否存在。

您可以使用我的pre-commit-kitchen-sink-hook.pl,它允许您验证特定文件是否附加了特定属性,并且该属性具有特定值。

match = \.(nib|xib|pdf)$
property = svn:mime-type
value = application/octet-stream
type = string