我知道,这一定是个愚蠢的问题。
假设我有一个使用autotools构建系统的库。
我拥有configure
,configure.ac
,Makefile.am
,config.h
以及项目根文件夹中的其他文件。其中一些是由开发人员编写的,另一些是由autotools生成的。
问题是:如果我使用版本控制系统(在我的情况下是hg) - VCS应该跟踪哪些autotools文件,哪些不应该(hgignore'd)?
谢谢, 哔叽
答案 0 :(得分:10)
我认为最好的方法是只将文件置于未生成的版本控制之下 - 使用VCS的人员是开发人员,并且应该在他们的计算机上安装autotools,检入生成的文件只会给他们带来麻烦。
另一方面,您必须确保所有生成的文件都已完成源级分发,以便非开发人员能够在不安装autotools的情况下构建软件。
答案 1 :(得分:4)
这有两种思想流派:
我个人通常属于后一组,但如果某些特定版本的构建系统出现问题,那么前者可能会很好,你可能已经不再安装了。
在您的示例中configure
和config.h
都是(可能)自动生成的,因此如果您要将它们包含在版本控制中,我倾向于包含Makefile.in
s太
在我的项目中,这通常意味着没有比configure.ac
,Makefile.am
更多的autotools相关文件,如果它是GNU的文档和名为m4
的目录,其中包含任何自定义/非标准我的configure.ac需要宏。