Branches in TFS2010

December 21, 2008

Let’s face it : managing branches and controlling the merge activities in Team Foundation Server isn’t optimal for the moment and it takes some effort to know what’s going on in a Team Project. At least development teams should enforce the most appropriate branching & merging strategy at the start of their project, but TFS could definitely do a better job in helping to control this complexity.

One of the features of TFS2010 I like a lot and can’t wait to make use of in the future is the improved support for parallel development. In this post I would like to highlight the way branches are treated in TFS2010 …

First of all, branches will be treated as first class citizens. If you look at the next screenshot you can see that branches are now differently displayed in the Source Control Explorer with another icon.

Branches may be organized in folders and each branch has now its own special properties :

  • General Branch Properties

  • Relationships

  • Permissions

Conversion to branches/folders can be executed via the context menu in the Source Control Explorer.

In a next post I’ll start exploring the new branching and merging possibilities, but before I close this post I would like to point you to the new TFS Branching Guide (2.0) that was recently released and contains a lot of essential information how to choose the best strategy for branching (and merging) your Team Projects. I like the way Jeff Beehler stressed the importance of having such a strategy :

Selecting the right branching strategy is one of the most important aspects of TFS deployment. Picking the right strategy can lead to optimized team cooperation, increased productivity and a successful adoption. On the other hand, selecting a bad branching strategy can cause frustration, damage productivity and derail TFS adoption in an organization.

Visual Studio 2010 CTP Expiration

December 19, 2008

In case you didn’t know about the VS2010 CTP Expiration : now is the time to disable time synchronization under Virtual PC 2007! Otherwise, after January 1, 2009, you will no longer be able to launch the Visual Studio 2010 CTP …

Read more how to do this.

VSTS2010 : The Big Picture

December 8, 2008

Taken from the Microsoft Developer and Designer Tools 2008 Product Guide :

Microsoft Visual Studio Team System is an integrated Application Lifecycle Management (ALM) solution comprising tools, processes, and guidance to help development teams improve their skills and work more effectively together. Visual Studio Team System enables your development teams to collaborate and communicate more effectively, ensure software quality, and gain visibility into the software development lifecycle.

What will be different in Visual Studio Team System 2010? VSTS 2010 will bring some new capabilities that make it easier for all contributors on the software team to participate throughout the life cycle; from the core developers and testers to the wider team of project managers, designers and business analysts.

The picture shows that there will be only 3 client editions of Visual Studio Team System. Hey, what happened to the Database Edition? Well, in VSTS2010, the feature set of the Development Edition and the Database Edition will be merged into 1 single product : the Development Edition. Read more on this in the press release of September 29, 2008. New is that there will now be support for working with Team Foundation Server in the Expression Tools. There will also be more support for SharePoint development and on the other side SharePoint won’t be required anymore to install Team Foundation Server. The Test Lab Managementproduct is a new server product that targets large organizations who want to test a variety of configurations in a virtual lab environment. With that new product you will get the ALM experience on top of virtualization.

In my journey so far to explore VSTS2010 I’ve seen a strong focus on the Team Architect Edition and the Team Test Edition. There are also some big improvements in the Team Foundation Server product. VSTS2010 can really be seen as a very big release : v2 of Team System after v1.5 in 2008 and v1 in 2005. Before the release of Visual Studio Team System in 2005, Visual Studio was only a tool for developers to write code. With the release of Team System in 2005, Visual Studio became an integrated collaboration tool for all stakeholders in the development process and that was a big change! With the upcoming release of VS2010, Microsoft continues to focus and invest in a solution for managing the entire application lifecyle.

Stay tuned for what’s new in the different editions of Visual Studio Team System!

Build Controllers and Build Agents

December 1, 2008

New for Team Builds in Team Foundation Server 2010 is the concept of Build Controllers. In the previous versions of Team Foundation Server (2005/2008), you were only able to assign a Team Build to a specific Build Agent. This means that when the Build Agent is offline or in failure, your Team Build won’t run and you will have to manually switch to another Build Agent.

In Visual Studio Team System 2010 you must assign the execution of a Team Build to a specific Build Controller instead of a Build Agent. The Build Controller will now be responsible for managing a custom pool of Build Agents and will select the rightBuild Agent to run the Team Build. In the screenshot below you can see that the Default Controller has a pool of 2 Build Agents : Default Agent and Pieter’s Agent. A Build Controller – like the Build Agent – may have 4 different states : Enabled, Disabled, Unreachable and Initializing.

New is also the tagging system for Build Agents. You may for example tag a Build Agent as a WinServer2008 machine or as VeryPowerful.

These tags may be used during the configuration of your Team Build. When a Team Build needs to run on a Windows Server 2008 machine, you can enforce this in the Build Process setup on the ReservationSpec of the agentScopeActivity [“Select an Agent and Build”].

When preparing a demo for my VISUG session last week, I noticed that on the VS2010CTP (October 2008 Release) there’s only one Build Agent assigned to the Default Build Controller and I couldn’t find a way to assign an extra Build Agent to the Default Build Controller. Brian Harry forwarded my question to Jim Lamb and Aaron Hallberg of the Team Build and they finally came up with the magic : for now it’s not possible to do it via the user interface, but for now you need a command line to do it …

  agent /new /name:"Pieter's Agent"
  /BuildController:"Default Controller"

This exe runs in the Team Build Folder of %Program Files%\Microsoft Visual Studio v10.0 Team Foundation Server. After executing this command, an extra TFS Build Agent should pop up in your Task Manager …