2013-09-24 55 views
1

我们一直有问题,员工无意中将错误的SQL文件* .SQL文件提交为二进制文件而不是文本。是否有一种简单的方法可以将Collabnet Subversion中以* .SQL结尾的文件格式更改为文本。问题在于Subversion在文本文件&二进制文件之间进行DIFF时没有正确显示修订版本。如果我们再次作为文本提交,那么它是一个文本到文本DIFF。 文本到二进制DIFF表示低于这个时候有变化:Subversion文件被误认为二进制

- No changes - 
Diff Legend 

– Removed lines 
+ Added lines 
< Changed lines 
> Changed lines 

任何简单的方法来转换或防止不正确的签? 任何方式颠覆可以检查文件扩展名是* .sql,并将其转换/阻止它作为二进制进行提交? 任何方法来识别所有结尾* .SQL的文件保存为二进制文件而不是颠覆文本? 这可以在颠覆或与龟没有任何其他工具?

回答

3

颠覆并没有真正的文本与二进制模式的文件。所有文件都以相同的格式存储。

在Subversion中,所有的二进制文件的意思是说Subversion不应该试图合并这个文件,或者对它做文本比较。

Subversion通过设置名为svn:mime-type的文件属性来确定文件是否为文本文件。如果未设置,则该文件是文本文件。如果已设置,则该文件被假定为二进制文件。 (如果mime类型以text/开头,但我不能100%确定,它可能仍然被认为是一个文本文件)

您需要做的是配置您的mime类型文件以了解*.sql文件是文本文件。如果您为Subversion服务器使用Apache httpd,则可以编辑mime-types文件,该文件通常位于httpd.conf所在的conf目录中。

您也可以通过在Unix中设置$HOME/.subversion/config文件或在Windows上编辑您的Subversion注册表项来对每个用户进行设置。

你要做的是设置一个MIME类型文件,然后将mime-types-file条目指向该文件。

MIME types file仅仅是一个两列的事务与所述第一列中的MIME类型和在第二列中的后缀。您需要添加这样的事情:

text/sql    sql 

这将保证在*.sql结尾的文件是一个文本文件。

对于您所输入的文件,只是删除对他们的财产:

$ svn propdel svn:mime-type *.sql 
$ svn commit -m"Making my SQL files text files"