Autotools:config.guess、depcomp或ltmain.sh应该存储在SVN仓库中吗?

3

我正在接手一个项目,发现在版本库中有一些属于libtool和automake分发的文件,比如config.guess、depcomp或ltmain.sh。我认为这是错误的,因为当我检出时,应该在我的机器上安装autotools并执行autoreconf。

你觉得呢? 我是否忽略了将这些文件放入版本库的意义?

3个回答

6

通常情况下,你不会将这些文件存储在你的SVN仓库中。通常情况下,你会有一个autogen.sh文件,在需要时重新创建它。你不存储可能过时的文件的想法是正确的。如果有人提交了对configure.ac的更改,并且其他人使用configure检出了整个项目,则更改将无效。


注意:现在,autoreconf -i 的效果非常好。一些项目可能需要一个更特定的 bootstrap.sh(我更喜欢 bootstrap.sh 而不是 autogen.sh,因为有一个叫做 autogen 的程序)。 - Jack Kelly

4
几乎所有可以生成的东西,包括depcomp等都不应该成为被跟踪的源代码仓库的一部分。

2
纯理论认为,你不应该将可以重新生成的文件放入版本控制。由于可以使用“autoreconf -i”或类似工具重新创建这些文件,因此在这种情况下也适用。
很多人仍然这样做的原因(除了可能是无知),是因为这会给开发人员带来重大的额外负担。例如,如果你有一个较大的开源项目,有几十个开发人员和数百个感兴趣的关注者,每个人都安装了不同版本的autoconf、automake、libtool、autopoint等软件。在简单的情况下,这可能没有什么区别。但实际上,这确实会带来很大的麻烦,并使潜在的项目贡献者望而却步。
因此,作为一种实际妥协,由于这些文件实际上很少更改,如果你有一个非常复杂的设置,你可能仍然需要将它们检入版本控制。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接