【问题标题】:Subversion files mistakenly commited as binarySubversion 文件错误地提交为二进制文件
【发布时间】:2013-09-24 23:22:23
【问题描述】:

我们遇到过员工意外或错误地将 SQL 文件 *.SQL 文件提交为二进制而不是文本的问题。有没有一种简单的方法可以将 Collabnet Subversion 中以 *.SQL 结尾的文件的格式更改为文本。问题是 Subversion 在文本文件和二进制文件之间进行 DIFF 时没有正确显示修订版。如果我们再次作为文本提交,那么它是文本到文本 DIFF。 Text to Binary DIFF 在发生更改时显示如下:

- No changes -
Diff Legend

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

有什么简单的方法可以转换或防止错误签入? 任何方式颠覆都可以检查文件扩展名是否为 *.sql 并将其转换/防止它作为二进制提交? 有什么方法可以识别所有以 *.SQL 结尾的文件,这些文件在颠覆中保存为二进制而不是文本? 这可以在 subversion 或 Tortoise 中完成吗?

【问题讨论】:

    标签: svn


    【解决方案1】:

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

    在 Subversion 中,所有 二进制 文件意味着 Subversion 不应尝试合并此文件,或对其进行文本比较。

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

    您需要做的是配置您的 mime-type 文件以了解 *.sql 文件是文本文件。如果您将 Apache httpd 用于您的 Subversion 服务器,您可以编辑 mime-types 文件,该文件通常位于 httpd.conf 所在的 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"
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2010-11-10
      • 1970-01-01
      • 2011-03-20
      • 2010-09-16
      • 2017-10-11
      • 1970-01-01
      • 2011-08-07
      • 1970-01-01
      相关资源
      最近更新 更多