SVN Diff:为什么有些文件被标记为二进制文件
直接相关:(根据对答案的评论) 为什么我的SVN客户端会将一些文件标记为二进制文件 具体来说,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]中没有未注释的内容,那么决策来自何方 从我在相关文章中看到的情况来看,我可以通过删除受影响文件上的属性或通过配置/设置全局更改新文件上的行为来“修复”
.sql
在使用TortoiseSVN时具有propsvn: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类型会为我生成以下消息:无法显示:标记为二进制类型的文件