Sunday, November 2, 2014

Tfs Branch Tool for Visual Studio 2013

This week I published a beta 1 of the TFS Branch tool for VS 2013. The reason for shipping a Beta 1 is mainly to get a version supporting VS 2013 out there, as more and more request and ask for it comes in. The reason ¬for calling it Beta 1 is that it contains a couple of new features, witch I want feedback on, and they haven’t had time to go through the amount of testing I want before releasing it as a final version

What’s new
Apart from supporting VS 2013, the following news is introduced.
  • Improved distribution / support for customizations
    The tool now automatically load branch plans from source control.
  • Dynamic menus – Go direct to the operation you want
    You can now select the desired operation directly in the menu instead of selecting the form
  • New action for Copy File or FileStructure
    You can now modify the branch plan to add files or a part of a file structure to source control.
I’ll go through the different news in more details below. But first I want to share my thoughts on the why some of this features is introduced and the direction for the tool I have in mind.
The future branch tool
My goal with the branch tool is that it should add value to team by helping them automate some of the manual processes we have with branch and merge to day. The first step is enable team to easily customize the branch plans.
Once that is done, we need to provide a way to let the tool understand and adopt to the teams context. If the tool could know witch branch is the current dev and main branches, the tool could present Operations like Forward and Reverse integration and prepopulate the needed parameters accordingly.

Another direction is to be able to automate the whole flow. Then a team decide to release a build, it could simply select a New Release operation, Select witch of the main branch builds to release., provide some parameters and let the tool Find the build, lock it, branch the main code for that build to a release branch, set security on it and generate the release notes from the previous release.

In short there is a lot that could be accomplished, it’s just the small issue of taking it from a vision or idea into a working solution. Meanwhile you can read below on that’s been delivered in this release.

Improved distribution / support for customizations
Although the capability to modify or customize the branching strategies was a key architectural concern, one of the epics that didn’t make it into the ALM ranger project and first version of the Community Tool was the capability to easily distribute the customizations made. This made it hard to actually do a customization in the real world. This problem is hopefully now solved!

The new version of the tool automatically check in source control for any customizations made and loads them with higher priority than the default templates. To add and distribute your own branch plans , just checkin the .branchplan file to a folder BranchToolSettings in the root folder of your teamproject.
Dynamic menus – Go direct to the operation you want
In the new version, the Branch Tool Menu is now automatically populated with the different branchplans or operations, so you can select directly in the menu what you want to do.

New Add File or File structure actions
A common ask has been to be able to include a predefined set of files or a file structure then performing the operations. Now you can both add files and file structures, both from the local filesystem/unc path or from a source control path.