我们遇到过这样的问题:员工意外地或者错误地将SQL文件* .SQL文件作为二进制而不是文本提交。有没有一种简单的方法可以将以* .SQL结尾的文件的Collabnet Subversion中的格式更改为文本。问题是Subversion在文本文件和文件之间执行DIFF时没有正确显示修订版本。二进制文件。如果我们再次作为文本提交,则它是文本DIFF文本。 当有变化时,文本到二进制DIFF显示如下:
- No changes -
Diff Legend
– Removed lines
+ Added lines
< Changed lines
> Changed lines
转换或阻止错误登记的简单方法? 任何方式subversion可以检查文件扩展名是否为* .sql并转换/阻止它作为二进制提交? 有没有办法识别所有以* .SQL结尾的文件,这些文件在subversion中保存为二进制而不是文本? 这可以在subversion中完成,还是在没有任何其他工具的情况下使用Tortoise完成?
答案 0 :(得分:3)
Subversion实际上没有带文件的文本与二进制模式。所有文件都以相同的格式存储。
在Subversion中,所有二进制文件意味着Subversion不应该尝试合并此文件,或者对其执行文本差异。
Subversion通过设置名为svn:mime-type
的文件属性来确定文件是否为文本文件。如果未设置,则文件是文本文件。如果已设置,则假定该文件为二进制文件。 (如果mime-type以text/
开头,它可能仍被视为文本文件,但我不是100%肯定...)
您需要做的是配置mime类型文件以了解*.sql
文件是文本文件。如果您使用Apache httpd作为Subversion服务器,则可以编辑mime-types
文件,该文件通常位于conf
所在的httpd.conf
目录中。
您也可以通过在Unix中设置$HOME/.subversion/config
文件,或在Windows上编辑Subversion注册表项来基于每个用户进行设置。
您要做的是设置 mime types 文件,然后将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"