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

时间:2013-10-21 16:00:06

标签: svn tortoisesvn diff mime-types file-type

直接相关:svn diff: file marked as binary type (根据答案评论)

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

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

我选中了右键单击>乌龟上下文菜单>设置>一般> Subversion配置文件,[miscellany][auto-props]中没有取消注释,所以决定来自何处?

从我在相关帖子中看到的内容,我可以通过删除受影响文件的属性来“修复它”,或者通过config / setting全局更改新文件的行为,但是有一种“简单”方式同时为所有受影响的文件做什么?

有点相关:

2 个答案:

答案 0 :(得分:15)

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

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

其他信息(编辑)

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

答案 1 :(得分:6)

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

notepad %APPDATA%\Subversion\config

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

enable-auto-props = yes

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

*.sql = svn:mime-type=text/plain

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

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