Extend the Project Creation Process to promote Ranger branching guidance – Sprint 3 Feedback
This project is part of the Ranger Quick Response Solutions family and the Branching and Merging Guide. Vladimir sums up the team’s level of “fun” and “commitment” in his from the heart feedback below.
Overview
Started |
September 1, 2012 | ||||||||||||
Why |
Not simple to implement a consistent branching model as part of team project or team creation process. | ||||||||||||
Vision |
Create a command line tool and an extension for the project creation process to guide and automate the branching structure. | ||||||||||||
Team |
|
When I asked Vladimir why he is such a passionate team member he replied: “Well… First of all, I am a programmer to the marrow of my bones. I need to write code, like human needs to breathe. Secondly, I never felt taste and specifics of agile programming in distributed team on my own hide. That is really great exercise and experience I would like to take, as I’m pushing my teams being creative and effective. Thirdly, it is great idea to implement. …and at this point I decided to stop counting and start working.”
Feedback
As promised, the team delivered the command line tool featuring the re-usable parser, source control wrapper and action execution engine for internal evaluation and testing. I immediately built the tool and gave it a test run:
❶ Test: Asking for help /?
C:\…\evaluation\Sprint3>TfsBranchTool /?
------------------------------------------------------------------------
TfsBranchTool Command line utility - (c) Community TFS Branch Tool
------------------------------------------------------------------------
Usage:
TFSBranchTool Operation /collection:<collectionurl> /teamproject:<teamprojectname> [/root:<branchrootpath>]
[/Feature:FeatureName]
Operation: one of MainOnly, Basic, Feature
<collectionurl>: Valid URL to Team project Collection /teamproject:<teamprojectname>
< teamprojectname>: Team Project to apply branches to
< branchrootpath>. Path to where to apply branches, defaults to project root
Samples:
TFSBranchTool MainOnly /collection:<collectionurl> /teamproject:<teamprojectname>
TFSBranchTool Basic /collection:<collectionurl> /teamproject:<teamprojectname>
TFSBranchTool Feature /collection:<collectionurl> /teamproject:<teamprojectname> /branchroot:C:\TFS\TFSTool
/Feature:'feature1'
❷ Test: Run a MainOnly sequence
C:\…\evaluation\Sprint3>TfsBranchTool MainOnly /collection:https://demosp3.tfspreview.com/defaultcollection
/teamproject:Ranger_Sandbox
/BranchRoot:"$/Ranger_Sandbox/fbt-test-s3/mainonly/"
MainOnly with arguments:
Collection: https://demosp3.tfspreview.com/defaultcollection
TeamProject: Ranger_Sandbox
BranchRoot(optional): $/Ranger_Sandbox/fbt-test-s3/mainonly/
Executing 'ConnectSourceControl' operation...
Executing 'MainBranch' operation...
Executing 'Check-inMain' operation...
Execution completed
And the results are …
No branch hierarchy to show. |
❸ Test: Run a Basic sequence
C:\…\evaluation\Sprint3>TfsBranchTool Basic /collection:https://demosp3.tfspreview.com/defaultcollection
/teamproject:Ranger_Sandbox
/BranchRoot:"$/Ranger_Sandbox/fbt-test-s3/basic"
Basic with arguments:
Collection: https://demosp3.tfspreview.com/defaultcollection
TeamProject: Ranger_Sandbox
BranchRoot(optional): $/Ranger_Sandbox/fbt-test-s3/basic
Executing 'ConnectSourceControl' operation...
Executing 'MainBranch' operation...
Executing 'Check-inMain' operation...
Executing 'DevBranch' operation...
Executing 'Check-inDev' operation...
Executing 'CreateDokFolder' operation...
Executing 'CreateCodeFolder' operation...
Executing 'CreateVideoFolder' operation...
Executing 'Check-inNyDevBranchFolders' operation...
Execution completed
And the results are …
❹ Test: Run a Feature sequence
We were able to raise the first bug, albeit a small one. The /branchroot argument needs a server path in the sprint 3 build.
C:\…\evaluation\Sprint3>TfsBranchTool Feature /collection:https://demosp3.tfspreview.com/defaultcollection
/teamproject:Ranger_Sandbox
/BranchRoot:"$/Ranger_Sandbox/fbt-test-s3/feature" /Feature:Test1
Feature with arguments:
Collection: https://almrangers.tfspreview.com/defaultcollection
TeamProject: Ranger_Sandbox
Feature: Test1
BranchRoot(optional): $/Ranger_Sandbox/fbt-test-s3/feature
Executing 'ConnectSourceControl' operation...
Executing 'MainBranch' operation...
Executing 'Check-inMain' operation...
Executing 'CreateFeatureBranch' operation...
Executing 'CreateMiscellaneousBranch' operation...
Executing 'Check-inBranches' operation...
Executing 'CreateDokFolder' operation...
Executing 'CreateCodeFolder' operation...
Executing 'CreateVideoFolder' operation...
Executing 'CreateMmscellaneousDokFolder' operation...
Executing 'CreateMiscellaneousCodeFolder' operation...
Executing 'CreateMiscellaneousVideoFolder' operation...
Executing 'Check-inNewFolders' operation...
Execution completed
And the results are …
In other words three tests, some minor typo errors and a “thumbs up” to the team. During sprint 4 we are planning to release this quick response command line sample solution and continue with the next Epics, which sees us extending the Visual Studio IDE.
For those that know me these core objectives I am entrenching in the project come as no surprise:
- Deliver a console based sample application, which is devoid of UX noise and demonstrates the concepts and allows for easy debugging /exploration.
- Deliver a IDE extension to ensure the user need not switch context from an INTEGRATED development environment.