{"id":1333,"date":"2008-10-18T17:29:04","date_gmt":"2008-10-18T17:29:04","guid":{"rendered":"https:\/\/blogs.msdn.microsoft.com\/buckh\/2008\/10\/18\/pre-checkin-validation-tool-for-team-foundation-build-2008-tfs-check-in-validation-tool\/"},"modified":"2008-10-18T17:29:04","modified_gmt":"2008-10-18T17:29:04","slug":"pre-checkin-validation-tool-for-team-foundation-build-2008-tfs-check-in-validation-tool","status":"publish","type":"post","link":"https:\/\/devblogs.microsoft.com\/buckh\/pre-checkin-validation-tool-for-team-foundation-build-2008-tfs-check-in-validation-tool\/","title":{"rendered":"Pre-checkin validation tool for Team Foundation Build 2008: TFS Check-in Validation Tool"},"content":{"rendered":"<p>Mohammad Jalloul, a developer on the Developer Division Engineering team, has released a new tool on <a href=\"http:\/\/www.codeplex.com\/\">CodePlex<\/a> called <a href=\"http:\/\/www.codeplex.com\/BuddyBuild\">TFS Check-in Validation Tool<\/a>.&nbsp; This tool provides the ability to have a checkin validating by a build prior to being checked in.&nbsp; This is similar to a feature in TFS 2010 called Gated Checkin, which is integrated into VS and TFS (you can learn more about Gated Checkin and other TFS Build 2010 features in this <a href=\"https:\/\/channel9.msdn.com\/posts\/VisualStudio\/An-early-look-at-Team-Foundation-Build-2010-with-Jim-Lamb\/\">video<\/a>).&nbsp; With both of these the goal is to prevent build breaks from being checked in by validating them beforehand.&nbsp; I refer to this as &#8220;pessimistic&#8221; continuous integration in contrast to traditional continuous integration where developers check in optimistically and react to build breaks.&nbsp; Mohammad&#8217;s tool gives you the capability to do this now with Team Foundation Server 2008.<\/p>\n<p>Mohammad has put a lot of effort into this tool and already has an internal team using it.&nbsp; He has also recruited <a href=\"http:\/\/blog.bartholomew.id.au\/\">William Bartholomew<\/a>, a <a href=\"https:\/\/mvp.support.microsoft.com\/communities\/mvp.aspx?adv=1&amp;competency=Team+System&amp;page=7\">VSTS MVP<\/a>, to be a project coordinator.&nbsp; I look forward to hearing what you think about it and encourage you to try it out.<\/p>\n<blockquote>\n<h4><a href=\"http:\/\/www.codeplex.com\/BuddyBuild\"><strong>TFS Check-in Validation Tool<\/strong><\/a><\/h4>\n<h4><strong>Project Description <\/strong><\/h4>\n<p> The TFS Check-in Validation Tool extends TFS Team Build 2008 by enabling buddy build queuing (pre-checkin), validating checkins using shelvesets, and build agent pooling, all from the VS 2008 IDE.    <\/p>\n<h4><strong>TFS Check-in Validation Tool Features <\/strong><\/h4>\n<p> The <b>TFS Check-in Validation Tool<\/b> is a collection of tools that allows you to perform the following functionality that is not provided by Team Build 2008:    <\/p>\n<ul>\n<li><b>Check-in Validation<\/b>\/<b>Buddy Build<\/b> functionality allows running buddy builds against <u>one or more<\/u> shelvesets by utilizing your existing Team Build Definition <\/li>\n<li>Add one line to your <u>TFSBuild.proj<\/u> script to make it buddy-build enabled <\/li>\n<li>The ability to check in shelvesets upon buddy build success <\/li>\n<li>Ability to have a buddy build or a regular build request go against a <b>Build Agent pool<\/b> rather than queuing against the single build agent that was configured in the build definition <\/li>\n<li><b>Custom MSBuild tasks<\/b> that extend Team Build to allow running buddy builds <\/li>\n<li>The ability to <u>assign a weight to each build agent in the pool<\/u> (for example, you might want to favor the agents with better hardware by assigning a higher weight to them to get them selected more often) and also to restrict your build pool size to a subset of the agents registered with the Team Project <\/li>\n<\/ul>\n<h4>Screenshots <\/h4>\n<p><img decoding=\"async\" alt=\"image005.jpg\" src=\"http:\/\/i3.codeplex.com\/Project\/Download\/FileDownload.aspx?ProjectName=BuddyBuild&amp;DownloadId=43575\"><\/p>\n<p>     <br>See the Installation Guide for more detailed screenshots:      <br><a href=\"http:\/\/www.codeplex.com\/BuddyBuild\/Release\/ProjectReleases.aspx\">http:\/\/www.codeplex.com\/BuddyBuild\/Release\/ProjectReleases.aspx<\/a><\/p>\n<\/blockquote>\n<div class=\"wlWriterSmartContent\" id=\"scid:0767317B-992E-4b12-91E0-4F059A8CECA8:74663949-9b04-48c6-b27b-51c91eb84858\" style=\"padding-right: 0px;padding-left: 0px;padding-bottom: 0px;margin: 0px;padding-top: 0px\">Technorati Tags: <a href=\"http:\/\/technorati.com\/tags\/team%20foundation%20server%202008\" rel=\"tag\">team foundation server 2008<\/a>,<a href=\"http:\/\/technorati.com\/tags\/team%20build\" rel=\"tag\">team build<\/a><\/div>\n","protected":false},"excerpt":{"rendered":"<p>Mohammad Jalloul, a developer on the Developer Division Engineering team, has released a new tool on CodePlex called TFS Check-in Validation Tool.&nbsp; This tool provides the ability to have a checkin validating by a build prior to being checked in.&nbsp; This is similar to a feature in TFS 2010 called Gated Checkin, which is integrated [&hellip;]<\/p>\n","protected":false},"author":94,"featured_media":10268,"comment_status":"open","ping_status":"open","sticky":false,"template":"","format":"standard","meta":{"_acf_changed":false,"footnotes":""},"categories":[1],"tags":[7,8],"class_list":["post-1333","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","category-uncategorized","tag-team-build","tag-team-foundation"],"acf":[],"blog_post_summary":"<p>Mohammad Jalloul, a developer on the Developer Division Engineering team, has released a new tool on CodePlex called TFS Check-in Validation Tool.&nbsp; This tool provides the ability to have a checkin validating by a build prior to being checked in.&nbsp; This is similar to a feature in TFS 2010 called Gated Checkin, which is integrated [&hellip;]<\/p>\n","_links":{"self":[{"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/posts\/1333","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/users\/94"}],"replies":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/comments?post=1333"}],"version-history":[{"count":0,"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/posts\/1333\/revisions"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/media\/10268"}],"wp:attachment":[{"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/media?parent=1333"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/categories?post=1333"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/devblogs.microsoft.com\/buckh\/wp-json\/wp\/v2\/tags?post=1333"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}