为什么Linux上的Subversion客户端将我的XML文件检测为二进制文件?

Mic*_*las 4 linux svn binary file

svn在Linux上遇到了奇怪的错误.

我想将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
Run Code Online (Sandbox Code Playgroud)

相同的操作适用于Windows环境.我都配置了auto-props:

*.xml = svn:eol-style=native
Run Code Online (Sandbox Code Playgroud)

我都有svn, version 1.8.10 (r1615264).

我可以说它:

  1. 在Windows上添加文件
  2. 添加svn:mime-type=text/xml到自动道具,所以它看起来像:

    *.xml = svn:mime-type=text/xml;svn:eol-style=native
    
    Run Code Online (Sandbox Code Playgroud)
  3. svn add--no-auto-props选项,然后使用svn propset

  4. 添加空文件,然后编辑它

但我想通过简单地添加文件来实现.

为什么Linux上的Subversion客户端将此文件检测为二进制文件?

mli*_*elt 6

不是真正的解决方案,但有些评论可能有所帮助:

  • 通常,mime-types由auto-props的用户明确设置.
  • 我找到了一个如何将文件标记为二进制文件的参考:http://svnbook.red-bean.com/en/1.7/svn.forcvs.binary-and-trans.html也许这有助于理解它是如何工作的.
  • 您是否检查过该文件是否在Linux中可执行,以便Subversion认为它是二进制文件?

在客户端上使用Subversion 1.8,您将拥有所谓的Repository Dictated Configuration,因此以下内容应该适用于所有情况:

  1. 在您的存储库(/或/ trunk)的根目录中包含svn:auto-props具有该值的属性*.xml = svn:mime-type=text/xml;svn:eol-style=native
  2. 现在,当您添加新的文件(Windows和Linux),并将该文件有结局.xml,颠覆应添加为属性文件svn:mime-typesvn:eol-style.如果文件是二进制文件,并且将mime-type设置为类似text/*应该确保文件不被解释为二进制文件,则不应该涉及任何魔法.