您是否保留了在版本控制下构建项目所需的工具?
如果您这样做,您有哪些工具可以包含哪些指南?我想没有人会把Visual Studio放在版本控制中,但是你的单元测试运行器呢?Nant/Ant/Maven可执行文件?
外部依赖怎么样?你有版本控制Boost吗?JDK?NUnit的/ JUnit的?你在哪里画限制?
(另见这个问题).
编辑: 我想我的问题并不完全清楚:我不想知道你是将它们保留在版本控制还是某些共享驱动器中.我真的想知道你是否检查了将项目与项目一起构建到版本控制所需的工具,这样当你检查项目时,你会自动获得工具.
作为回答否的人的一般跟进:您跟踪这些工具的过程是什么?你的脚本下载它们吗?
是的,我保留了一切,这是在版本控制中提供软件生产过程的一部分.
这有两种思想流派:
把刚才你的源代码到存储库.
将缺少操作系统和语言运行库的软件构建到存储库中.
我个人倾向于更倾向于#2,因为它使人们更容易启动并运行我的代码.无论如何,我认为如果你选择第一种方法,你至少应该这样做,以便一个人可以在一步中得到第2点所需的东西和你的源代码,即使不一定是版本控制.
不幸的是,构建系统是一种灰色区域.除非我使用的是模糊不清或不标准的东西,否则我个人不予理睬.什么是模糊和非标准是由你工作的环境决定的.例如,如果你的公司总是使用MSBuild但决定在这个项目中出于任何原因使用Nant,那么我就把它包括在内.
我将构建脚本置于版本控制之下,但不是工具.通常,我的版本文件既可以是应用程序核心的一部分,也可能在项目生命周期中经常更改(并且每个人都需要访问这些更改).这包括几乎所有配置文件.
我通常在java项目上使用eclipse/ant.不,我没有在版本控制下保留JDK,Ant或eclipse,但是:
我所有的来源
构建脚本
所有第三方库的二手版本(是的,也是junit)
原因是:我有一个几乎自包含的构建系统,任何安装了jdk和ant的系统都可以构建,没有网络连接neccecary(外部javadoc的包列表也签入).这可以是我的macbook,公司的Windows桌面,任何连续的构建服务器.
我们使用maven,所以我们只检查代码,测试,配置文件,当然还有pom.xml,没有libs,没有工具.