Autotools和版本控制

时间:2011-02-02 10:08:19

标签: file controls version autotools

我知道,这一定是个愚蠢的问题。 假设我有一个使用autotools构建系统的库。 我拥有configureconfigure.acMakefile.amconfig.h以及项目根文件夹中的其他文件。其中一些是由开发人员编写的,另一些是由autotools生成的。

问题是:如果我使用版本控制系统(在我的情况下是hg) - VCS应该跟踪哪些autotools文件,哪些不应该(hgignore'd)?

谢谢, 哔叽

2 个答案:

答案 0 :(得分:10)

我认为最好的方法是只将文件置于未生成的版本控制之下 - 使用VCS的人员是开发人员,并且应该在他们的计算机上安装autotools,检入生成的文件只会给他们带来麻烦。

另一方面,您必须确保所有生成的文件都已完成源级分发,以便非开发人员能够在不安装autotools的情况下构建软件。

答案 1 :(得分:4)

这有两种思想流派:

  1. “我希望看到项目与时间/版本X完全相同”
  2. “我总是可以重新生成以后自动生成的任何内容”
  3. 我个人通常属于后一组,但如果某些特定版本的构建系统出现问题,那么前者可能会很好,你可能已经不再安装了。

    在您的示例中configureconfig.h都是(可能)自动生成的,因此如果您要将它们包含在版本控制中,我倾向于包含Makefile.in s太

    在我的项目中,这通常意味着没有比configure.acMakefile.am更多的autotools相关文件,如果它是GNU的文档和名为m4的目录,其中包含任何自定义/非标准我的configure.ac需要宏。