18

直接相关: svn diff:标记为二进制类型的文件 (根据答案的评论)

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

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

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

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

有点相关:

4

2 回答 2

18

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

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

附加信息(编辑)

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

于 2014-01-20T23:40:55.963 回答
7

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

notepad %APPDATA%\Subversion\config

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

enable-auto-props = yes

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

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

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

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

于 2014-09-17T15:12:38.003 回答