如何在Fossil存储库中存储非UTF-8文件?

时间:2016-01-14 09:14:08

标签: fossil

当我尝试将一个Latin-9编码的文件添加到Fossil存储库时,我收到错误:

  

...包含无效的UTF-8。使用--no-warnings或“encoding-glob”设置禁用此警告。

但是从文档中我认为这只会抑制警告并仍然会做错误的事情,这意味着一个Latin-9文件会被导入为UTF-8文件。

如何将Latin-9文件导入为Latin-9文件?如何指定文件或所有文件的编码?

1 个答案:

答案 0 :(得分:4)

Fossil所做的是在提交期间警告您文件包含它不希望存在的数据(二进制,而不是Unicode等)。除非c=convert选项存在并且您选择它,否则它实际上不会更改文件的内容。如果选择转换选项,它将首先转换文件,然后要求您在单独的步骤中实际提交它。

当您使用--no-warnings取消警告时,它不会显示警告并假设您要提交文件(不进行转换)。

对于更永久的解决方案,encoding-glob设置(可以是存储库的本地设置或全局设置)可以包含表示包含其他文本的文件的模式(例如*.txt)格式(对于二进制文件,binary-glob设置可以做到这一点)。当Fossil遇到非Unicode内容时,它将不会发出警告并假设你想要这个;再次,它不会转换文件,它只是告诉Fossil你知道你在做什么,非Unicode内容是故意的。