I have to create the same branches in every new team project

Problem:

I have to create the same branching structure in several team projects.  I would like a way to automate this process.

Solution:

Use the tf.exe and tfpt.exe command line tools in a batch file.

Explanation:

Using the tf.exe and tfpt.exe command line tools you can preform the same task from the command line that you can preform in the IDE.  Using tf.exe and tfpt.exe we can script the creation of the desired branching structure to speed up the process.

You can download the Microsoft Visual Studio Team Foundation Server 2012 Update 1 Power Tools from here.

The script below creates the Basic Branch Plan from the Visual Studio Team Foundation Server Branching and Merging Guide which you can download from here.

The script must by run from a Developer Command Prompt so that tf.exe and tfpt.exe can be found.  Your other option is to update the environment variables for you machine to include the location of tf.exe and tfpt.exe in your path.

@ECHO OFF

REM If they did not provide arguments show them how to 
REM use this batch file
if "%1" == "" GOTO Usage
if "%2" == "" GOTO Usage

REM Create a temp workspace to create the branches in.
REM This will be deleted at the end
tf workspace /new /noprompt temp /collection:%1

REM Before you can create branches you must do a get latest
tf get $/%2

REM Create a main folder that will become the main branch of code
md %2\Main

REM Add this folder to TFS
tf add %2\Main /noprompt

REM Check in the main folder
tf checkin /comment:"Adding main branch" /recursive /noprompt

REM Now start creating the other branches
REM main to dev
tf branch $/%2/Main $/%2/Dev /noget /checkin

REM main to release
tf branch $/%2/Main $/%2/Release /noget /checkin

REM We have to use tfpt from the power tools to convert
REM the folder to a branch so we get the new branch icons
REM in source control explorer
tfpt branches /convertToBranch /collection:%1 /recursive $/%2/Main

Echo Deleting temp workspace
Echo.
tf workspace /delete /noprompt temp

REM Remove the directories we created
rd %2 /s /q

REM Skip usage and just end
GOTO End

REM Show how to use the script
:Usage

Echo This batch file will create the default Main, Dev and Release branches
Echo for a team project.
Echo Requires:
Echo Microsoft Visual Studio Team Foundation Server 2012 Update 1 Power Tools
Echo.

Echo Usage:
Echo   createBraches collection teamProjectName
Echo.
Echo     collection = http://tfs:8080/tfs/myCollection
Echo     teamProjectName = the team project name in that collection 
Echo.
Echo   createBranches http://tfs:8080/tfs/sandboxcollection teamProjectName

:End

createBranches.cmd (1.67 kb)

Comments are closed