【问题标题】:SVN Diff: Why are some files marked as binarySVN Diff:为什么有些文件被标记为二进制
【发布时间】:2013-10-30 05:30:11
【问题描述】:

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

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

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

我检查了右键 > Tortoise 上下文菜单 > 设置 > 常规 > Subversion 配置文件,[miscellany][auto-props] 中没有任何内容未注释,那么决定来自哪里?

从我在相关帖子中看到的内容来看,我可以通过删除受影响文件上的属性来“修复它”,或者通过配置/设置全局更改新文件的行为,但是有没有一种“简单”的方法来对所有受影响的文件都这样做吗?

有点相关:

【问题讨论】:

  • 天哪,删除mime-type 属性(假设它默认为text/plain)会每隔一个字符显示一堆NUL 字符垃圾。我的场景不适用吗? TortoiseMerge 查看器可以很好地比较它...
  • 我也遇到了同样的问题....sql 文件不断以application/octet-stream 上传,而它们显然是text/plain,而没有设置auto-props。太糟糕了,没有人提供答案:(

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


【解决方案1】:

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

notepad %APPDATA%\Subversion\config

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

enable-auto-props = yes

在 [auto-props] 下添加这一行:

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

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

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

【讨论】:

  • 有趣。我做了同样的事情,唯一的区别是我的自动道具设置为*.sql = svn:mime-type=application/x-sql(不知道为什么)。将其更改为您的建议使其在提交时显示为我想要的。但我要指出,svn:eol-style=native 不是必需的,它实际上是在更改磁盘上的文件。
  • 我会将此标记为答案,但它似乎对现有文件没有帮助。
  • 必须检出现有文件,更改其属性,然后再次检入。但这确实是一个不同的问题。
  • 正确且 IANA 注册的 SQL mime 类型是 application/sql per RFC 6922。不确定这对 TortoiseSVN 的行为有何影响。
  • 我能够让 JSON 和 SQL 在 svn diff 上显示的唯一方法是使用 text/plain 作为我的 mime 类型。当我尝试查看差异时,它们各自的应用程序 mime 类型会为我生成以下消息:Cannot display: file marked as a binary type
【解决方案2】:

好吧,我在我的特定案例中发现了这个问题:

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

附加信息(编辑)

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

【讨论】:

  • 这将是一个痛苦的追查...但值得一试
  • 我之所以能够发现它是因为Notepad++,它有一个不错的Encoding... 菜单,可让您查看当前和更改编码。
  • 是的,Notepad++ 可以轻松修复每个文件,但如果您有很多文件,则似乎需要 batch script(或 this)。
  • 同意。为了完整起见,我添加了更多信息(例如,文件最初是如何进入 UCS-2 的)
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 2011-01-11
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-09-25
  • 1970-01-01
相关资源
最近更新 更多