我以为我能参考其他开发者的东西就像一个列表:什么是源代码管理和配置管理最佳实践?
- 一个构建脚本,如makefile文件, 将建立并测试整个项目
- 所有组件所需的构建 系统需要源控制
任何人都有这样的列表?优先顺序?
UPDATE - 增加了一些细节FYI
系统在问题包括C++和生成文件,爪哇与蚂蚁导致战争,以及PowerBuilder和C#GUI组件。所有代码都在执行。
所以我正在寻找通用以及语言特定的最佳实践。
我以为我能参考其他开发者的东西就像一个列表:什么是源代码管理和配置管理最佳实践?
任何人都有这样的列表?优先顺序?
UPDATE - 增加了一些细节FYI
系统在问题包括C++和生成文件,爪哇与蚂蚁导致战争,以及PowerBuilder和C#GUI组件。所有代码都在执行。
所以我正在寻找通用以及语言特定的最佳实践。
对我来说,#1规则是这样的:
主要分支是神圣的 - 它必须始终可建造,能够通过BVT的,而且是基本可用。
任何允许进入导致构建或BVT中断的主分支的代码都会暴露流程中的错误。该流程应该允许伙伴构建/测试单个分支系统,或者要求子分支在构建主分支之前构建并通过BVT,或者其他此类保护。
这很大程度上取决于您建筑的环境是什么?
每一种方法中和设置不同。所以我们需要知道你的设置,然后才能得到帮助。
增加了详细信息:有问题的系统由C++和makefiles组成,Java中带有导致WAR的ant,以及powerbuilder和C#gui组件。所有代码都在执行。 所以我正在寻找通用以及语言特定的最佳实践。 – 2009-04-14 23:23:16
通过阅读该博客条目的评论,你会发现我强烈反对这种观点。版本控制系统旨在控制软件版本,而不是备份中间编辑。一个好的编辑应该为你做。 (Emacs中的版本控制) – 2009-04-14 22:09:17
如果您通过从“乔尔测试”这些问题,你应该在正确的道路上:
你使用源代码控制?
您是否每日制作?
你有错误数据库吗?
在编写新代码之前是否修复了错误?
我的第一个问题是:您可以一步完成构建吗?
作为一个SCM经理,我可以给你关于这个问题的最佳答案是“看情况”。您列表中项目重要性的列表和顺序取决于您的项目要求,您使用的语言和开发人员级别。
您可能想要考虑的一件事对您放在一起的任何列表来说都很重要(或#1),即您的工具的主干或主分支受到极大的控制,只有少数人可以访问导入或对其进行更改。这将在发布时节省大量头痛。
的项目,可以是任何名单上,你放在一起是:
该列表可以继续和开放取决于您的具体要求,但我认为你得到的是这里的一般想法。
系统必须自行构建,自行测试,并自行下载+构建依赖关系。 我有一个生成文件下载,建立和部署一个运行时环境,这是我的中继版“认证”。这个makefile也被提交到版本库中。
记住犯下另一个非常重要的,而且大多被忽视的东西(有三种一捆):(!把一个版本就可以了)
的“获取最新”的全过程, “建筑”应该平稳,轻松,快速和可靠。
如果不是,开发人员往往会忽略获取最新版本并继续研究其陈旧的副本,这是您想要避免的。
这是多了还是少了什么迈克尔所述 - 但我想强调的是超越分支是神圣和稳定 - 整个过程应该是快速和容易
有点像谷歌的理念是下载\安装应迅速和容易
恩,如果我可以问,什么是BVT? – bluezald 2012-07-24 03:37:33