SVN Diff:为什么有些文件被标记为二进制文件

drz*_*aus 18 svn diff tortoisesvn file-type mime-types

直接相关: svn diff:文件标记为二进制类型 (根据答案的评论)

为什么我的SVN客户端会将某些文件标记为二进制?

具体来说,使用TortoiseSVN时.sql有道具svn:mime-type = application/octet-stream.

我查了一下右键单击>龟上下文菜单>设置>常规> Subversion配置文件,并没有什么是注释掉[miscellany][auto-props],所以其中的决定是从哪里来的?

从我在相关帖子中看到的内容,我可以通过删除受影响文件的属性来"修复它",或者通过配置/设置全局更改新文件的行为,但是有两种"简单"方法可以所有受影响的文件

有点相关:

bra*_*uar 16

好吧,我在特定情况下发现了这个问题:

开发人员保存了.sql他用于新脚本的模板文件.不知何故,这个文件是用UCS-2(或Unicode)编码保存的.每当他添加文件时,TortoiseSVN都会确定它是一个二进制文件.通过将编码切换为UTF-8,将模板和从其派生的文件正确添加为text/plain.

附加信息(编辑)

我发现可能是罪魁祸首.使用GUI生成某些脚本时,SQL Server Management Studio会将它们写Unicode在查询窗口中.如果文件已保存,它也将保存Unicode.有趣的是,通过File> 打开的文件New不会像这样保存.微软在2007年发现一个问题(在这里找到),显然还没有得到解决.


use*_*209 7

这是解决此问题的快速方法:

notepad %APPDATA%\Subversion\config
Run Code Online (Sandbox Code Playgroud)

向下滚动并取消注释此行:

enable-auto-props = yes
Run Code Online (Sandbox Code Playgroud)

在[auto-props]下添加以下行:

*.sql = svn:mime-type=text/plain
Run Code Online (Sandbox Code Playgroud)

现在,当您将.SQL文件添加到SVN时,它们将自动标记为文本(不是八位字节流).

编辑:删除不必要的行结束文件更改.

  • 必须检出现有文件,更改其属性并再次签入.但这确实是一个不同的问题. (2认同)