【问题标题】:Autotools: should config.guess, depcomp or ltmain.sh be stored in the SVN repo?Autotools:应该将 config.guess、depcomp 或 ltmain.sh 存储在 SVN 存储库中吗?
【发布时间】:2010-12-16 08:45:15
【问题描述】:

我正在接管一个项目,我在 subversion 存储库中看到一些属于 libtool 和 automake 分发的文件,例如 config.guess、depcomp 或 ltmain.sh。我相信这完全是错误的,因为当我结帐时,我应该在我的机器上安装 autotools 并执行 autoreconf。

你怎么看? 我错过了将这些文件放在存储库中的意义吗?

【问题讨论】:

    标签: autotools automake libtool


    【解决方案1】:

    通常情况下,您的 SVN 存储库中不会有这些。通常你有一个autogen.sh 可以按需重新创建它。您不存储可能过时的文件的本能是一种很好的本能。如果有人对configure.ac 进行了更改,而其他人使用configure 检查了整个事情,那么更改将无关紧要。

    【讨论】:

    • 备注:这些天,autoreconf -i 工作得很好。有些项目可能需要更具体的bootstrap.sh(我更喜欢bootstrap.sh 而不是autogen.sh,因为有一个程序叫做autogen)。
    【解决方案2】:

    几乎所有可以生成的东西——以及 depcomp 等都属于它——不应该成为跟踪源存储库的一部分。

    【讨论】:

      【解决方案3】:

      纯粹的理论是您不应该将可以重新生成的文件放入版本控制中。由于您可以使用 autoreconf -i 或类似名称重新创建这些文件,因此适用于这种情况。

      很多人仍然这样做的原因(除了无知,可能)是因为这会给开发人员带来巨大的额外负担。例如,如果您有一个较大的开源项目,有数十名开发人员和数百名感兴趣的追随者,每个人都会安装不同版本的 autoconf、automake、libtool、autopoint 等。在简单的情况下,这不应该有所作为。在实践中确实如此,这可能会让人头疼并拒绝潜在的项目贡献者。

      因此,作为一种实际的折衷方案,由于这些文件实际上很少更改,因此如果您的设置非常复杂,则无论如何都可以将它们签入。

      【讨论】:

        猜你喜欢
        • 2010-11-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多