我在Linux上遇到svn
客户端的奇怪错误。
我想将test.xml
文件添加到存储库。此文件是标准XML文本文件,仅包含拉丁字符(无BOM)和Linux行尾(仅LF
)。但我的svn
客户端失败了:
[mn@mn testy]$ cat test.xml
<?xml version="1.0" encoding="UTF-8"?>
<Test>test</Test>
<Test>89012345678901234</Test>
[mn@mn testy]$ file test.xml
test.xml: XML document text
[mn@mn testy]$ svn add test.xml
svn: E200009: Can't set 'svn:eol-style': file '/home/mn/testy/test.xml' has binary mime type property
相同的操作适用于Windows环境。我两个都配置了自动道具:
*.xml = svn:eol-style=native
我都有svn, version 1.8.10 (r1615264)
。
我可以开展工作:
将svn:mime-type=text/xml
添加到自动道具中,如下所示:
*.xml = svn:mime-type=text/xml;svn:eol-style=native
svn add
选项 --no-auto-props
,然后使用svn propset
但我想通过简单地添加文件来实现。
为什么Linux上的Subversion客户端会将此文件检测为二进制文件?
答案 0 :(得分:6)
不是真正的解决方案,但有些评论可能有所帮助:
在客户端上使用Subversion 1.8,您就拥有了所谓的Repository Dictated Configuration,因此以下内容适用于所有情况:
svn:auto-props
*.xml = svn:mime-type=text/xml;svn:eol-style=native
.xml
时,Subversion应将其添加为文件svn:mime-type
和svn:eol-style
的属性。如果文件是二进制文件,并且将mime-type设置为text/*
之类,则应该没有任何魔法可以确保文件不被解释为二进制文件。