当前位置: 首页 > 面试题库 >

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

爱博达
2023-03-14
问题内容

我为数据库中的存储过程生成了完整的脚本集。当我创建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

预先感谢您的帮助吉姆


问题答案:

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

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

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



 类似资料:
  • 问题内容: 我们遇到一个与Java应用程序有关的问题,该Java应用程序在具有Via C3处理器的Advantech POS板上的(较旧的)FC3下运行。Java应用程序具有几个可通过JNI访问的已编译共享库。 通过C3处理器应该与i686兼容。前一段时间,在具有相同处理器的MiniItx板上安装Ubuntu 6.10之后,我发现前面的陈述不是100%正确。由于缺少C3处理器中i686设置的某些特

  • 使用可选扩展增强Mercurial的功能。 1.简介 Mercurial旨在提供一个小巧,安全且易于使用的命令集,该命令集对于大多数用户来说足够强大。 Mercurial的高级用户可以使用Mercurial扩展。扩展允许将强大的新功能直接集成到Mercurial核心中。 注意:扩展功能可能不符合Mercurial常规安全性,可靠性和易用性标准。 “ hg help extensions ” 提供内

  • 问题内容: 假设我在数据库表的列中有或,等等。 如何仅获取文件扩展名? 问题答案: 试试这个: sqlfiddle

  • 问题内容: 我想更改特定文件夹中文件的扩展名。我在论坛上阅读了有关此主题的信息。使用“确实”的想法,我编写了以下代码,我希望它可以工作,但不能。我很感谢您为我的失误提供任何指导。 问题答案: 在对源文件是不必要的,因为只需要在源和目标路径来完成这项工作。而且,始终返回,因此调用其返回值没有任何意义。 我简单地删除了两个。检查是否适合您。

  • 问题内容: 我正在尝试查找具有特定扩展名的文件。例如,我要查找所有名为Robert的.pdf和.jpg文件 我知道我可以执行此命令 但是我需要指定扩展名之外的文件本身的名称。我只是想看看是否有一种避免重复写入文件名的方法,谢谢! 问题答案: 我的偏好:

  • 问题内容: 假设从CGI开始,我已经将文件显示为文件。我想将的文件扩展名更改为显示文件。我该怎么做? 问题答案: , 例如: