微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

在Mercurial中具有.sql扩展名的文件被标识为二进制文件

如何解决在Mercurial中具有.sql扩展名的文件被标识为二进制文件

为了符合Mercurial对二进制文件视图,它实际上并不跟踪文件类型,这意味着用户无法将文件标记为二进制文件或非二进制文件

正如tonfa和Rudi所述,Mercurial通过查看文件中是否存在NUL字节来确定文件是否为二进制文件。对于UTF- [16 | 32]文件,几乎可以保证NUL字节。

要“修复”此问题,必须确保文件使用UTF-8而不是UTF-16编码。理想情况下,导出时,数据库应具有Unicode编码的设置。如果不是这种情况,另一种选择是编写一个预提交钩子来执行此操作(请参见如何在Python中将文件转换为UTF-8作为开始),但是您必须非常小心要转换的文件

解决方法

我为数据库中的存储过程生成了完整的脚本集。当我创建Mercurial存储库并添加这些文件时,它们都以二进制形式添加。显然,我仍然可以获得版本控制的好处,但是会损失很多效率,文本文件的“差异化”等。我验证了这些文件的确只是文本。

为什么这样做呢?

我应该怎么做才能避免这种情况?

有没有办法让汞改变他们对这些文件的看法?

这是变更集日志的片段:

   496.1 Binary file SQL/SfiData/Stored Procedures/dbo.pFindCustomerByMatchCode.StoredProcedure.sql has changed
   497.1 Binary file SQL/SfiData/Stored Procedures/dbo.pFindUnreconcilableChecks.StoredProcedure.sql has changed
   498.1 Binary file SQL/SfiData/Stored Procedures/dbo.pFixBadLabelSelected.StoredProcedure.sql has changed
   499.1 Binary file SQL/SfiData/Stored Procedures/dbo.pFixCCOPL.StoredProcedure.sql has changed
   500.1 Binary file SQL/SfiData/Stored Procedures/dbo.pFixCCOrderMoneyError.StoredProcedure.sql has changed

预先感谢您的帮助吉姆

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。