Autotools和版本控制

zse*_*rge 6 controls file version autotools

我知道,这一定是个愚蠢的问题.假设我有一个使用autotools构建系统的库.我有所有的configure,configure.ac,Makefile.am,config.h并可能在我的项目的根文件夹的其他文件.其中一些是由开发人员编写的,另一些是由autotools生成的.

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

谢谢,塞尔

Tom*_*ner 10

我认为最好的方法是只把那些不产生版本控制下的文件 - 人与VCS的工作是开发人员,并应安装在自己的机器的自动工具,在生成的文件检查只会带来麻烦他们.

在另一方面,你必须确保源代码级别的分布与所有生成的文件做到位,使非开发人员能够建立一个没有安装自动工具软件.

  • 你实际上并不需要autogen.sh甚至 - autoreconf与autotools一起安装,并且完全适合你. (3认同)
  • 如果您使用需要单独设置步骤的intltool之类的东西,则需要它. (2认同)

Fle*_*exo 5

对此有两种流派:

  1. “我希望看到项目与时间/版本 X 完全一样”
  2. “我总是可以重新生成后来自动生成的任何东西”

我个人通常属于后一组,但如果某些特定版本中的构建系统存在/存在问题,而您可能不再安装,则前者可能会很好。

在您的示例中configureconfig.h并且两者(可能)都是自动生成的,因此如果您要将它们包含在版本控制中,我也倾向于包含Makefile.ins。

在我的项目中,这通常意味着除了configure.ac,之外没有更多与 autotools 相关的文件,Makefile.am如果它是 GNU 的文档和一个m4包含我的 configure.ac 需要的任何自定义/非标准宏的目录。