【问题标题】:git-config style configuration systemgit-config 风格的配置系统
【发布时间】:2009-11-12 05:18:29
【问题描述】:

git-config 使用什么系统来管理配置?它是作为独立库/工具公开可用的吗?还是和 git 紧紧交织在一起?

我想为我的项目提供类似的东西。

是否有我可以使用的提供类似功能的库?还是我应该只编写自己的工具/库?

【问题讨论】:

    标签: git configuration


    【解决方案1】:

    对于 Python,由于 git 配置文件中的前导空格,似乎无法直接使用 ConfigParser。但它可以以这种方式使用

    from ConfigParser import ConfigParser
    from StringIO import StringIO
    
    with open('.gitconfig') as f:
        c = f.readlines()
    cp = ConfigParser()
    cp.readfp(StringIO(''.join([l.lstrip() for l in c])))
    

    【讨论】:

    • 部分标题中的附加数据无法通过ConfigParser 获得,例如[submodule "my/submodule/name"].gitmodules 文件中
    【解决方案2】:

    代码是自定义的。 Have a look for yourself(参见 builtin-config.c、config.c)。

    有关重用的详细信息,请参阅许可证 (GPL v2)。

    它不是一个通用库,也不是一个通用工具(尽管如果你总是通过--file 并且对它执行小节的方式没问题,你可能可以将它用作一个工具),所以它需要一些努力调整代码。

    【讨论】:

      【解决方案3】:

      除了Chris Johnsen answer:CPAN 上还有Config::GitLike Perl 模块。
      它不是 Git 项目的一部分

      【讨论】:

        【解决方案4】:

        对于 Java,这里有一个非常小的库:gitconfig4j

        【讨论】:

          【解决方案5】:

          对于 Python,有 ConfigParser 模块,它使用类似的文件格式。

          【讨论】:

          • 您实际上不能直接使用 ConfigParser,因为 Linus 出于某种原因决定将制表符放入格式中。见郭从斌的回答。
          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2018-10-18
          • 2016-07-06
          相关资源
          最近更新 更多