gpt4 book ai didi

Git - 支持外来字符集

转载 作者:太空狗 更新时间:2023-10-29 13:43:16 25 4
gpt4 key购买 nike

我在 abas-ERP 环境中工作,由于历史原因,它使用了一个名为 abas-s3 的深奥字符集。我们使用 Git 和 ERP 服务器上的本地存储库来对我们的程序进行版本控制。

Git 自然不支持 abas-s3。在 erp-servers 上有一个名为 s3_conv 的程序,它从 abas-s3 转换到外部世界(例如 UTF-8 和 UTF-16),反之亦然。

有什么方法可以使用此程序,使用 UTF-8 作为存储库并使用 s3 作为工作树?

感谢任何反馈!提前致谢!

最佳答案

如果问题出在文件内容,您可以使用clean/smudge filters(参见gitattributes)让Git 在存储到存储库时转换为UTF-8 , 并在将内容 checkout 到工作区时转到 abas-s3。

您也可以在 Pro Git 中找到解释书。


总结:

  1. 您需要在配置文件(每个存储库、每个用户或系统范围内)定义一个过滤器,它由两个命令组成:clean从工作区域表示转换为存储库表示,以及 smudge反向工作。假设s3_conviconv一样工作,它可能看起来像这样(这是适当配置文件的片段):

    [filter "s3conv"]
    clean = s3_conv --from abas-s3 --to utf-8
    smudge = s3_conv --from utf-8 --to abas-s3
  2. 使用 gitattributes 文件(在存储库内部、每个存储库、每个用户或系统范围内)声明哪些文件应该使用此操作进行转换。假设你想用 SQL 转换文件,使用 *.sql扩展名,文件的适当片段可能如下所示(注意此处 = 周围不能有空格):

    *.sql filter=s3conv

请注意,Git 与编码无关,您不需要转换文件的内容……除非您需要它进行互操作?


如果你需要git diff正确显示更改(假设您没有可以显示 abas-s3 编码并且可以在 core.pager 中使用的寻呼机),您可能需要配置 textconv过滤器 INSTEAD:

  1. 在配置文件中:

    [diff "s3conv"]
    textconv = s3_conv --from abas-s3 --to utf-8

    这假设终端和寻呼机配置为显示 utf-8

  2. 在 gitattributes 文件中:

    *.sql diff=s3conv

关于Git - 支持外来字符集,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28362289/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com