直接相关:svn diff: file marked as binary type (根据答案评论)
为什么我的SVN客户端会将某些文件标记为二进制文件?
具体来说,.sql
在使用TortoiseSVN时有道具svn:mime-type = application/octet-stream
。
我选中了右键单击>乌龟上下文菜单>设置>一般> Subversion配置文件,[miscellany]
或[auto-props]
中没有取消注释,所以决定来自何处?
从我在相关帖子中看到的内容,我可以通过删除受影响文件的属性来“修复它”,或者通过config / setting全局更改新文件的行为,但是有一种“简单”方式同时为所有受影响的文件做什么?
有点相关:
答案 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时,它们将自动标记为文本(不是八位字节流)。
编辑:删除了不必要的行结束文件更改。