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

SVN Diff:为什么有些文件被标记为二进制文件,svn,tortoisesvn,diff,mime-types,file-type,Svn,Tortoisesvn,Diff,Mime Types,File Type,直接相关:(根据对答案的评论) 为什么我的SVN客户端会将一些文件标记为二进制文件 具体来说,.sql在使用TortoiseSVN时具有propsvn:mime type=application/octet-stream 我选中了右键单击>乌龟上下文菜单>设置>常规>Subversion配置文件,在[miscellany]或[auto props]中没有未注释的内容,那么决策来自何方 从我在相关文章中看到的情况来看,我可以通过删除受影响文件上的属性或通过配置/设置全局更改新文件上的行为来“修复”

直接相关:(根据对答案的评论)

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

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

我选中了右键单击>乌龟上下文菜单>设置>常规>Subversion配置文件,在
[miscellany]
[auto props]
中没有未注释的内容,那么决策来自何方

从我在相关文章中看到的情况来看,我可以通过删除受影响文件上的属性或通过配置/设置全局更改新文件上的行为来“修复”,但是否有一种“简单”的方法可以同时对所有受影响的文件执行这两种操作

有些相关:


嗯,我在我的特殊情况下发现了问题:

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

其他信息(编辑)


我找到了罪魁祸首。使用GUI生成某些脚本时,SQLServerManagementStudio会在查询窗口中将它们作为
Unicode
写入。如果文件被保存,它也将被保存为
Unicode
。有趣的是,通过
文件
新建
打开的文件不会这样保存。早在2007年,微软就提出了一个问题(已发现),显然还没有解决。

这里有一个快速解决此问题的方法:

notepad %APPDATA%\Subversion\config
向下滚动到此行并取消注释:

enable-auto-props = yes
*.sql = svn:mime-type=text/plain
在[自动道具]下添加此行:

enable-auto-props = yes
*.sql = svn:mime-type=text/plain
现在,当您将.SQL文件添加到SVN时,它们将自动标记为文本(而不是八位字节流)


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

Jeez,删除
mime type
属性(假设默认为
text/plain
)会每隔一个字符显示一堆
NUL
字符垃圾。我的方案不适用吗?乌龟比较好…我也有同样的问题
.sql
文件以
application/octet-stream
的形式被上传,当它们是清晰的
text/plain
,没有设置
自动道具时。太糟糕了,没有人提供答案:(好吧,这将是一个痛苦的追踪…但值得一试,我之所以能够发现它,是因为
Notepad++
,它有一个很好的
编码…
菜单,允许你查看当前和更改编码。是的,Notepad++可以很容易地修复每个文件,但如果你有很多文件,它似乎是一个问题(或)将是必要的。同意。为了完整性(例如,文件如何首先进入UCS-2)有趣,我添加了更多信息。我做了同样的事情,唯一的区别是我的自动道具设置为
*。sql=svn:mime type=application/x-sql
(不确定原因)。将其更改为您的建议使其在提交时显示为我想要的。但我要指出,
svn:eol style=native
不是必需的,它实际上正在更改磁盘上的文件。我会将此标记为答案,但它似乎对现有文件没有帮助。必须签出现有文件,并更改其属性d、 但这确实是一个不同的问题。正确且IANA注册的SQL mime类型是
application/SQL
per。我不确定这对乌龟的行为有什么影响。我能够让JSON和SQL在
svn diff
上显示的唯一方法是使用
text/plain
作为我的mime类型。它们的响应是当我尝试查看差异时,Active application mime类型会为我生成以下消息:
无法显示:标记为二进制类型的文件