TFS - The in and out - Chapter I ( An Overview)

Sunday, January 31, 2010

Introduction:
Here we are going to see the functioning of TFS (Team Foundation System), Build, Branching, management, etc. TFS Build is nothing but MS Build integrated into it. With Team Foundation Build, enterprise build managers can synchronize the sources, compile the application, run associated unit tests, perform code analysis, release builds on a file server, and publish build reports.
What’s New:
1. Web Access
2. Continuous Integration
3. Scheduled Build
4. Multithreaded Builds

TFS Editions:
There are 4 editions in TFS, they are:
1. Architecture
Modeling.
2. Database
Database Deployment, DB Testing.
3. Development
Code Analysis, Code Metrics, Profiling.
4. Test
Load and Manual Testing.

Types of Build:
1. Automated Builds
This build happens daily or weekly on a specific time automatically. Build automation is about collecting, assembling, validating, and auditing.
2. Manual Builds
o Milestone Builds
This build is taken on such situations like, on completion of some specific feature, for an integration that is done to the system.
o On Demand Builds
This build happens based on specific demand like Merge scenario, etc

The Build Process:
The build process is divided into 3 phases, they are:
1. Pre-Build Activities
Generally we do the Build related settings here, For ex: setting the configuration of the build like "Debug|Any CPU".
2. Build
This includes the Build, the Unit testing, and then the code analysis which are done along with the build.
3. Post-Build Activities
In this activity, the built files will be dropped to specific locations and project specific activities like taking a build report and mailing it to the developers will be done.

Branching and Merging:
Branching:
The main reason for taking a branching and merging is for the reason of Parallel development. A branch is a replica or a copy that is taken from the main for a specific purpose.

Types of Branches:
There are 3 types of branching, they are:
1. Main branch
This is the stable snapshot of the product. This will be shared with Testing and deployment team.
2. Development branch
This is where the development for the next version is done.
3. Production Branch
This will have the sources of your released products or soon to be released products.

Branch Plans:
There are 3 types of branch plans, they are:
1. Basic
In this there will be MAIN, DEV and Release branches.

2. Standard
In this there will be MAIN, DEV, Service pack, and Release branches.

3. Advanced
In this there will be MAIN, DEV, Service pack, Hot fix and Release branches.

Branching Scenarios:
There are 4 types of branching, they are:
1. Release Isolation
This is done when we need to work on multiple releases in parallel.
2. Feature Isolation
This is done when we want to work on some new functionality that is considered risky
or experimental.
3. Team Isolation
This is done for sub-teams, where one teams work should not affect others’.
4. Integration Isolation
This acts as a staging area for merges and active development happens here. After the merge becomes stable it is merged to other branches.

Merging:
It is a process which takes the changes in the source branch to the destination branch. You can simply do the merge operation by right-clicking on the DEV branch and selecting Merge. When any conflicts occur between the branches, then rely on the DEV branch.

Types of Merging:
There are 2 types of Merging, they are:
1. Based Merge
This happens when there is a relationship between the parent and child branches. This is the type of merge which is mostly done.
2. Baseless Merge
This happens when there is no relationship between the parent and child branches. As of now TFS doesn’t support merge between 2 child branches.

Some Terminologies:
1. Continuous Integration
It is a type of Build which happens on every check-in.
2. BVT
Build Verification Test.
3. Build Agent
It is a dedicated machine on which the build happens. It needs to have Build service installed in it.
4. Forward Integration
It is an integration which happens from the parent to the child.
5. Reverse Integration
It is an integration which happens from the child to the parent.
6. Release Vehicle
This says how your product reaches your customer (Ex: Hotfix, Release, etc).
7. Hotfix
It is a customer blocking bug.
8. Service Pack
It is a collection of Hotfixes and features.
9. What is shelving in TFS?
Shelving is a way through which you save your code to TFS without checking in. If you want you can unshelve it whenever you want. Generally it is used for reviewing purpose

0 comments

Post a Comment

LinkWithin

Blog Widget by LinkWithin

Recommended Books