What is the TFS Check-in Validation Tool?
The TFS Check-in Validation Tool extends TFS Team Build 2008 by enabling buddy build queuing, validating check-ins using shelvesets, and build agent pooling, all from the VS 2008 IDE.
The tool is open source, hosted on CodePlex.
Installation Guide [view online]
Buddy Build Process Flow

User Interface

Features
The TFS Check-in Validation Tool is a collection of tools that allows you to perform the following functionality that is not provided by Team Build 2008:
- Check-in Validation/Buddy Build functionality allows running buddy builds against one or more shelvesets by utilizing your existing Team Build Definition
- Add one line to your TFSBuild.proj script to make it buddy-build enabled
- The ability to check in shelvesets upon buddy build success
- Ability to have a buddy build or a regular build request go against a Build Agent pool rather than queuing against the single build agent that was configured in the build definition
- Custom MSBuild tasks that extend Team Build to allow running buddy builds
- The ability to assign a weight to each build agent in the pool (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
- The ability to specify a custom drop location for the buddy build
- The ability to queue a buddy build against pending changes in your current workspace and have a shelveset be automatically created on the fly containing those pending changes, and the ability to undo local workspace changes after a shelveset is created off them
- The ability to have the shelvesets automatically deleted after a successful check-in of shelved changes, following a successful buddy build
- The ability to select specific local pending changes to shelve on the fly
- Ability to specify a custom drop location for the buddy build
- Ability to define a set of custom MSBuild properties on the Buddy Build Integration web service and have those leveraged and overridden from the client add-in
Buddy Build Process Sequence Diagram
