Quick Response Sample – Visual Studio Extension to support the ALM Rangers Branching and Merging guidance

Importer

Quick Response samples provide information directly from Visual Studio ALM Rangers working with the Microsoft Visual Studio Product Group and Microsoft Services, in response to feature gaps to supplement the product and knowledge base information.

image

Issue

It is not simple to implement a consistent branching model, that complies with the VS TFS Branching and Merging Guide. Ultimately you would want support for this inside Visual Studio.

Resolution

Team Foundation Server has extensive support for version control and branching management through the object model. You can create your own solution, using the sample Visual Studio Extension, in the Quick Response download package. For an overview see the Quick Reference Sheet, which is also included in the sample code package.

image

Sample

To use the sample, proceed as follows:

  • Rebuild the sample code using Visual Studio 2012, whereby you require the TFS 2012 Object Model (OM) and the Visual Studio 2012 SDK.
  • Install the TfsBranchToolVSExtension.vsix file into Visual Studio 2012, by double clicking on it.
  • Start Visual Studio 2012 and navigate to Source Control Explorer
  • Mark a folder and right click on it.
  • You will now have a new menu, right above the ordinary Branch and Merge menu
    image
  • Expand it and you will find an option to Apply an initial structure
    image
  • Selecting this command will bring up the model selection form
    image
  • In this form you can select the configured branch plans, and set the arguments before applying a branch plan.
  • Let’s create a Basic Branch plan in a subfolder Basic. This is done by changing the argument RootFolder to $/Ranger_Sandbox/Willy/BasicDemo and clicking Apply.
    image
  • The form shifts to report the progress of applying the selected Branch plan
    image
  • Once completed you can close the form and take a look in source control explorer at the new branch and folder structure of your new Basic folder
    image

How does it work

The Visual Studio Extension is built on top of the same engine as the command line utility.

The Engine offers two core services to its clients. The First is a Branch Plan Catalog Service listing and providing information like Name, Description and the defined arguments for all available branch plans.

The second service is the Execution Engine that takes a list of arguments and a branch plan and simply executes the selected Branch Plan.

The Execution Engine is based on the **Microsoft Extensions Framework **and a defined schema for defining branch plans. This makes solution very configurable and extensible. The Engine simple assemblies and execute them, as defined in the .branchplan files. Each Action in the .branchplan corresponds to an MEF extended class in an assembly. There are a limited set of Actions provided (and needed) to create the source control structure needed to comply with the different branch plans.

The core actions provided are:

  • Connect to source Control
  • Create Folder
  • Create Branch
  • Check-In to source control

If you want you could easily add your own actions by building a MEF extended assembly, place the assembly in the same directory, and add your action to the .branchplan file.

Team

image

Future plans

  • Video on https://channel9.msdn.com/ which explores and explains the design behind this quick response solution
  • Work with the ALM Rangers / ALM MVPs to extend the tooling for the community

More ideas?

image

Related Posts

0 comments

Discussion is closed.

Feedback usabilla icon