我正在接管一个项目,我在subversion资源库中看到了一些属于libtool和automake分发的文件,例如config.guess,depcomp或ltmain.sh。我认为这是完全错误的,因为当我检查时,我应该在我的机器上安装autotools并执行autoreconf。
你怎么看? 我错过了在存储库中存储这些文件的意义吗?答案 0 :(得分:6)
通常情况下,你的SVN回购中没有。通常你有autogen.sh
可以根据需要重新创建它。你没有存储潜在陈旧文件的直觉是一个很好的。如果有人对configure.ac
进行了更改,而其他人使用configure
检查了整个内容,则更改无关紧要。
答案 1 :(得分:4)
几乎所有可以生成的东西 - 和depcomp等都属于那个 - 不应该是被跟踪的源代码库的一部分。
答案 2 :(得分:2)
纯粹的理论是,您不应该将可以重新生成的文件放入版本控制中。由于您可以使用autoreconf -i
或类似文件重新创建这些文件,因此适用于此情况。
许多人仍然这样做的原因(除了无知之外)可能会给开发人员带来巨大的额外负担。例如,如果你有一个更大的开源项目,有数十个开发人员和数百个感兴趣的粉丝,每个人都会安装不同版本的autoconf,automake,libtool,autopoint等。在简单的情况下,这不应该有所作为。在实践中,确实如此,这可能会造成严重的麻烦,并转移潜在的项目贡献者。
所以,作为一个实际的妥协,因为这些文件实际上很少变化,如果你有一个非常复杂的设置,你可能只是检查它们。