Team Build 2010 – Gated Check-in 拒绝无法编译的代码嵌入

Team Foundation Server 2010为基于Microsoft .NET开发平台进行开发的企业提供了完整的团队管理 平台和相应测试略,相比起TFS 2008来说的确有了非常大的改变。今天我们就来谈谈在Team Build 2010 中引进的Gated Check-in策略。

如果你的解决方案配置了Team Build,那么根据不同的Trigger会在不同的条件下触发team build. Team Build提供了以下几种不同的触发条件:

Figure 1: 不同的触发Team Build的条件选项

Manual 手动触发。普通的check-in不触发Team Build.
Continuous Integration 持续集成-每次check-in都会触发一次Team Build。
Rolling Builds 滚动式构建-在每次build完成后的特定时间后自动触发。
Gated Check-in 只有在team build成功运行后才会提交。
Schedule 可设定build运行时间。

 

从上表我们可以看出,除了Geted Check-in其它的方式都是首先提交变化,然后运行Team Build。 Team Build运行的成功与失败并不影响本次Check-in。这就导致可能某个开发人员嵌入了他的代码,但是 Team Build没有通过,而后其它的嵌入全部无法通过Team Build-即便你的本次嵌入从单纯意义的build上 讲是可以通过Team Build的测试的。去修改Team Build报告的错误也要浪费很多的时间。那么Gated Check-in做了什么?它可以帮助我们做什么?

Gated Check-in实际上分三步,第一,将你的变化Shelve(搁置)到服务器上(注意:Shelve的代码相 当于给你的代码创建了branch);其次,运行Team Build对你提交的改动后的解决方案进行编译;最后, 如果通过编译将改动提交给Source Control,否则不提交。这样做的好处是,保证每个人嵌入的是可以被 构建的独立的代码,不影响其他人的工作。

在Build Definition中,你仍然可以选择是否运行Test,运行什么样的Test等,如果测试失败Build是 否会失败。这样做提供了很好的机会让我们去创建多种不同的Build Definition.比如,你可以选择在普 通的Check-in中不运行Test,一次来节约服务器的消耗和提高对Check-in的响应。然后创建个 Nightly Build,让其在夜晚运行,包含这些Test。当然,这不是Gated Check-in所关心的。如果你设置了Fail Build On Test Failur,那么解决方案中如果有Test项,一旦失败的话Build将会失败,而你的改动也无 法被提交。

时间: 2024-10-24 01:59:30

Team Build 2010 – Gated Check-in 拒绝无法编译的代码嵌入的相关文章

TFS 2010:为什么Team Build长时间运行?

最近一直在使用Visual Studio 2010开发基于Silverligth的项目,并且使用Team Foundation Server作为整个开发过程的管理工具.为了保证开发过程中互相的嵌入不影响彼此,我们配置了Team Build Service,并且使用了Gated Check-in(参考Team Build 2010 – Gated Check-in 拒绝无法编译的代码嵌入了解Gated Check-in)来控制每个人嵌入的代码是可以被Team Build成功编译的.在开始的几天里,

Team System:Team Build 2008

Team Foundation Server (TFS) 本质上是面向团队的.当然,由一个人组成的团队也可以使用它,但 TFS 实际上是针对与开发项目中其他人之间的协作. 构建自动化不再只是按 F5.构建自动化涉及的是收集.汇编.验证和审核.其要旨就是收集组成解决 方案的所有产物,然后根据定义明确的集成计划将这些产物进行汇编.编译是在汇编阶段中定义的典型任 务.您可以使用各种自动化测试(通常使用构建验证测试 (BVT) 或冒烟测试)来验证团队的集体作品. 最后,您需要执行某些类型的审核来评估构建

我的Android进阶之旅------>解决:Failed to create 'build\outputs\apk\watch-debug-unaligned.apks': 拒绝访问。

1. 错误描述 今天用Android Studio进行项目编译的时候,报错如下所示: FAILURE: Build failed with an exception. * What went wrong: Execution failed for task ':watch:packageDebug'. > Failed to create 'D:\BBK_SVN\XTC_SSO\watch\build\outputs\apk\watch-debug-unaligned.apks': 拒绝访问.

Visual Studio Team System 2010中的敏捷规划工具

本文以 Visual Studio Team System (VSTS) 2010 的预发布版为基础.所有信息均有可能发生变更. 本文将介绍以下内容: 产品和小版本规划 产品积压工作簿 容量规划和报表 小版本积压工作簿 本文使用了以下技术: VSTS 2010.VSTS Process for Agile Software Development 1.0 "敏捷规划"存在语意矛盾吗?希望您不会这样认为,但在最近于洛杉矶召开的一次专项小组会议中,其中一位与会者指出其组织已从敏捷开发转为采

build path里配置了jnlp.jar,编译也通过,但运行时出错!

问题描述 //Loading,displayingandscalinganimageinanappletimportjava.awt.BorderLayout;importjava.awt.Graphics;importjava.awt.event.ActionEvent;importjava.awt.event.ActionListener;importjavax.jnlp.FileContents;importjavax.jnlp.FileOpenService;importjavax.jn

Cocos2d-x入门教程(详细的实例和讲解)_Android

智能终端上的游戏目前风头正劲,试问哪个智能手机上没有几款企鹅公司出品的游戏呢!之前从未涉猎过游戏开发,但知道游戏开发前要挑选一款合适的游戏引擎,自己从头开始敲代码的时代已经out了.在寻觅游戏引擎之前,我需要回答三道摆在我面前的选择题:     1.2D引擎还是3D引擎?    2.平台专用引擎还是跨平台引擎?    3.收费引擎还是开源引擎? 作为入门级选手,2D游戏显然更适合上手一些,另外适合果果这个年龄段的幼教类的游戏也多以2D游戏居多.3D游戏本身也太难了,不仅要 Programming

Cocos2d-x入门教程(详细的实例和讲解)

智能终端上的游戏目前风头正劲,试问哪个智能手机上没有几款企鹅公司出品的游戏呢!之前从未涉猎过游戏开发,但知道游戏开发前要挑选一款合适的游戏引擎,自己从头开始敲代码的时代已经out了.在寻觅游戏引擎之前,我需要回答三道摆在我面前的选择题: 1.2D引擎还是3D引擎?    2.平台专用引擎还是跨平台引擎?    3.收费引擎还是开源引擎? 作为入门级选手,2D游戏显然更适合上手一些,另外适合果果这个年龄段的幼教类的游戏也多以2D游戏居多.3D游戏本身也太难了,不仅要 Programming能力,还

Eclipse使用Team explorer everywhere进行代码管理

Visual Studio Team Explorer Everywhere 2010主要包含两大组件,参考图: ●Team Explorer Everywhere:它是Eclipse的Plug-in组件,让Eclipse能够使用TFS的版本管控.工作项目(Work Item).Team Build.以及报表等功能,它提供类似Team Explorer.Pending Changes等窗口,操作起来与原来的Visual Studio十分接近. ●Cross-Platform Command-Li

Excel 2010数据有效性操作

  Excel强大的制表功能,给我们的工作带来了方便,但是在表格数据录入过程中难免会出错,一不小心就会录入一些错误的数据,比如重复的身份证号码,超出范围的无效数据等.其实,只要合理设置数据有效性规则,就可以避免错误.下面咱们通过两个实例,体验Excel 2010数据有效性的妙用 实例一:拒绝录入重复数据 身份证号码.工作证编号等个人ID都是唯一的,不允许重复,如果在Excel录入重复的ID,就会给信息管理带来不便,我们可以通过设置Excel 2010的数据有效性,拒绝录入重复数据. 运行Exce