SlideShare une entreprise Scribd logo
1  sur  38
Team Foundation Server Source Control Dhirendra Singh Principal Software Engineer Zenevo Technologies
Agenda TFS- an Overview Managing Branches Merging Code Integration
What is Team Foundation Server? It is the “Glue” that connects our team What am I supposed to do? What’s my progress? What’s broken? Helps manage project artifacts Source Control
Visual Studio Team System
How it is helping us? Helps our team communicate  Centralized place to manage our project Data is captured automatically Everyone looks at the same data It is Customizable Artifacts version/source control Minimize / eliminate lost work Reproducible builds & product state
Team Foundation Server Team Foundation Server Version Control Reporting and BI Team Build Work Item Tracking Team Portal
Team Foundation Server Dev Team (Remote) Dev Team  (Local) Build Agent Windows 2003 Server SQL Server 2005 IIS 6.0 Business User Version Control Proxy (Remote) Active Directory HTTP / S TCP/IP Team Foundation Server
TFS Source Control: Terminology Workspaces Area on local disk where you edit files Check in / check out Check out marks the beginning of your edits Check in commits your changes to the repository TFS allows shared check out Changesets Group of changes that happen when you check in It works similarly as Label Shelving Similar to check in  Changes get stored on the server  Not visible as part of the main project source tree For the purpose of Park your changes & go ahead Branching Used to manage multiple versions of a product Helps in Release Process (Bug Fixes, Developing new features, Service Packs) 8
TFS does more than just check-in and check-out Branching and merging Facilitates simultaneous development of multiple versions of an application Applying Labels Cloaking Shelve & Unshelve
What should go into source control? Solution files -- *.sln Project files -- *.csproj, *.vbproj Source Control Project Metadata (*.vspscc) Project bindings Source control configuration Application config files (*.config) Source files  Project Binaries dependency references (e.g. Third Party dlls, Components) 10
What shouldnot go in source control? Solution user option files (*.suo) Local user customizations Project user option files (*.user) Local user customizations WebInfo files (*.webinfo) Build outputs /bin/debug /bin/release /obj 11
Client-side vs Server-side Structure Directory structure should be the same Client-side structure should match server Simplifies “Get Latest” Everyone has the same directory layout This doesn’t mean that everyone has to put their source in the same place on disk The relative paths should match Root path of source tree can be different 12
Plan your Repository Recommended file structure for Version Control.
Recommended File Structure
Don’t Branch... until You have a good reason Life only gets more complex with branching Favor Labels over Branches You can always branch from a Label later 15
When to branch…The Signs… Regular broken builds Features in parallel development that need to edit one another Branch so that each feature can develop in isolation Merge changes later Avoid source tree being polluted with experimental code.  Allow work on different versions of product at same time  Support maintenance releases etc  Allow parallel Development Ask yourself if the productivity gained by the branch is balanced against the pain (anti-productivity) of merging changes back 16
SO…IF YOU REALLY MUST BRANCH… 17
Branching Scenarios No Branching Everyone works from the same code Branch for Release Stabilization in order to prepare for a release Branch for Maintenance Maintenance of a previous build/release Service pack development Branch for Feature Branch from the Trunk to develop a new feature (such as a new module in isolation) Merge back into the Trunk when feature is done Branch for  Multiple Teams Branches for multiple teams working on a set of features 18
Branch For Release : Process ainbr />Sourcebr />elease 1br />Sourcebr />elease 2br />Sourcebr />19
Branch For Maintenance Similar to Branch For Release ainbr />Sourcebr />aintenancebr />Release 1br />Sourcebr />Release 2br />Sourcebr />20
Branch For Feature Branching for development isolation ainbr />Sourcebr />evelopmentbr />Feature 1br />Sourcebr />Feature 2br />Sourcebr />Feature 3br />Sourcebr />21
Branch For Feature: The Process 22
Branch For Teams ainbr />Sourcebr />evelopmentbr />Team 1br />Feature 1br />Sourcebr />Feature 2br />Source br />Team 2br />Feature 1br />Sourcebr />Feature 2br />Source br />23
Branching Overkill Minimize the number of branches Watch out for branching problems Missed deadlines because the merge is too difficult, long, intricate, etc Releases take forever because fixes have to go through multiple layers of merge You’re simply spending too much time doing merges 24
Branching and Merging Source: http://downloads.seapine.com/pub/papers/SCMBranchingModels.pdf
Demo Create a branch Merge changes Create/resolve a check-in conflict Discussion about Baseless Merge
Some News… Bad news Some features are command-line only Good news There’s a lot you can do from the command-line Scriptable
Beyond the GUITF.exe is your Friend The most powerful for Team Foundation Source Control is the command line.
 TF.exe Command-line interface to TFS source control 30+ sub commands Kind of like “net” command in Windows Why would you want to use the command line version? It’s cool Some things aren’t available through the UI Good for automated operations (builds, etc)
The Commands Add Branch / Branches Changeset Checkin / Checkout Configure Delete / Undelete Dir Get History Label / Labels / Unlabel Lock Merge / Merges Move Permission Properties Rename Resolve Shelve / Unshelve Status Undo View Workfold Workspace / Workspaces
Things you (probably) can’t do through the GUI  Find files in TFS by name/wildcard tf dir Get particular version of a file(s) by wildcard tf get Find checked out / pending change files tf status What will be changed by a “get latest”? tf get /preview Baseless merges tf merge /baseless Eliminating a changeset from a merge tf merge /discard
And Last but not the Least…
Baby Come Back Accessing Deleted Files Tools, Options, Source Control, Show deleted items in Source Control Explorer. Undelete file.  Remember to add to solution…
Extending TFS Use the .NET object model to extend Team Foundation Server
Check out != Get Latest and Also Check-in != Get Latest
Change != Bad TFS is new and different – you folks will need time to adjust.
Best Practices- References http://www.codeplex.com/TFSGuide Lots of great info Free Released Aug 2007 37
Question and Answer Dhirendra Singh Principal Software Engineer Zenevo Technologies Pvt. Ltd. dheerendra.singh@zenevo.com Singh.dheerendra@gmail.com www.zenevo.com

Contenu connexe

Tendances

Requirements and Team Foundation Server
Requirements and Team Foundation ServerRequirements and Team Foundation Server
Requirements and Team Foundation ServerSteve Lange
 
TFS Administration Overview
TFS Administration OverviewTFS Administration Overview
TFS Administration OverviewSteve Lange
 
What's new in Visual Studio 2013 & TFS 2013
What's new in Visual Studio 2013 & TFS 2013What's new in Visual Studio 2013 & TFS 2013
What's new in Visual Studio 2013 & TFS 2013Danijel Malik
 
Team Foundation Server 2010 - Overview
Team Foundation Server 2010 - OverviewTeam Foundation Server 2010 - Overview
Team Foundation Server 2010 - OverviewSteve Lange
 
Vsts Msdn Presentation2003
Vsts Msdn Presentation2003Vsts Msdn Presentation2003
Vsts Msdn Presentation2003John Sanderson
 
Team Foundation Server 2013 Lansering
Team Foundation Server 2013 LanseringTeam Foundation Server 2013 Lansering
Team Foundation Server 2013 LanseringSolidify
 
Application Lifecycle Management with TFS
Application Lifecycle Management with TFSApplication Lifecycle Management with TFS
Application Lifecycle Management with TFSMehdi Khalili
 
Integrated Proposal (Vsts Sps Tfs) - MS stack
Integrated Proposal   (Vsts Sps Tfs) - MS stackIntegrated Proposal   (Vsts Sps Tfs) - MS stack
Integrated Proposal (Vsts Sps Tfs) - MS stackBijoy Viswanadhan
 
Overview of Visual Studio Team System 2010
Overview of Visual Studio Team System 2010Overview of Visual Studio Team System 2010
Overview of Visual Studio Team System 2010joycsc
 
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?Vincent Biret
 
Workflow Manager 1.0 SharePoint 2013 Workflows
Workflow Manager 1.0SharePoint 2013 WorkflowsWorkflow Manager 1.0SharePoint 2013 Workflows
Workflow Manager 1.0 SharePoint 2013 WorkflowsDamir Dobric
 
Microsoft Stack Visual Studio 2010 Overview
Microsoft  Stack   Visual Studio 2010 OverviewMicrosoft  Stack   Visual Studio 2010 Overview
Microsoft Stack Visual Studio 2010 Overviewrfennell
 
Windows Workflow Foundation
Windows Workflow FoundationWindows Workflow Foundation
Windows Workflow FoundationAndrei Oros
 
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App TestingSencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App TestingSencha
 
Team Foundation Server - Tracking & Reporting
Team Foundation Server - Tracking & ReportingTeam Foundation Server - Tracking & Reporting
Team Foundation Server - Tracking & ReportingSteve Lange
 
Ci for force dot com
Ci for force dot comCi for force dot com
Ci for force dot comDon McIntosh
 
20140211 BTUG.be - Workflow Manager
20140211 BTUG.be - Workflow Manager20140211 BTUG.be - Workflow Manager
20140211 BTUG.be - Workflow ManagerBTUGbe
 

Tendances (20)

Requirements and Team Foundation Server
Requirements and Team Foundation ServerRequirements and Team Foundation Server
Requirements and Team Foundation Server
 
TFS Administration Overview
TFS Administration OverviewTFS Administration Overview
TFS Administration Overview
 
What's new in Visual Studio 2013 & TFS 2013
What's new in Visual Studio 2013 & TFS 2013What's new in Visual Studio 2013 & TFS 2013
What's new in Visual Studio 2013 & TFS 2013
 
Team Foundation Server 2010 - Overview
Team Foundation Server 2010 - OverviewTeam Foundation Server 2010 - Overview
Team Foundation Server 2010 - Overview
 
Vsts 2
Vsts 2Vsts 2
Vsts 2
 
The first looks at VSTS2010
The first looks at VSTS2010The first looks at VSTS2010
The first looks at VSTS2010
 
Vsts Msdn Presentation2003
Vsts Msdn Presentation2003Vsts Msdn Presentation2003
Vsts Msdn Presentation2003
 
Team Foundation Server 2013 Lansering
Team Foundation Server 2013 LanseringTeam Foundation Server 2013 Lansering
Team Foundation Server 2013 Lansering
 
Application Lifecycle Management with TFS
Application Lifecycle Management with TFSApplication Lifecycle Management with TFS
Application Lifecycle Management with TFS
 
Integrated Proposal (Vsts Sps Tfs) - MS stack
Integrated Proposal   (Vsts Sps Tfs) - MS stackIntegrated Proposal   (Vsts Sps Tfs) - MS stack
Integrated Proposal (Vsts Sps Tfs) - MS stack
 
Developing Sandbox Solutions
Developing Sandbox SolutionsDeveloping Sandbox Solutions
Developing Sandbox Solutions
 
Overview of Visual Studio Team System 2010
Overview of Visual Studio Team System 2010Overview of Visual Studio Team System 2010
Overview of Visual Studio Team System 2010
 
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?
#ESPC18 How to do #devops with the #SharePoint Framework and why it matters?
 
Workflow Manager 1.0 SharePoint 2013 Workflows
Workflow Manager 1.0SharePoint 2013 WorkflowsWorkflow Manager 1.0SharePoint 2013 Workflows
Workflow Manager 1.0 SharePoint 2013 Workflows
 
Microsoft Stack Visual Studio 2010 Overview
Microsoft  Stack   Visual Studio 2010 OverviewMicrosoft  Stack   Visual Studio 2010 Overview
Microsoft Stack Visual Studio 2010 Overview
 
Windows Workflow Foundation
Windows Workflow FoundationWindows Workflow Foundation
Windows Workflow Foundation
 
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App TestingSencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
Sencha Roadshow 2017: Best Practices for Implementing Continuous Web App Testing
 
Team Foundation Server - Tracking & Reporting
Team Foundation Server - Tracking & ReportingTeam Foundation Server - Tracking & Reporting
Team Foundation Server - Tracking & Reporting
 
Ci for force dot com
Ci for force dot comCi for force dot com
Ci for force dot com
 
20140211 BTUG.be - Workflow Manager
20140211 BTUG.be - Workflow Manager20140211 BTUG.be - Workflow Manager
20140211 BTUG.be - Workflow Manager
 

Similaire à Team Foundation Server - Source Control

Intro To Version Control
Intro To Version ControlIntro To Version Control
Intro To Version Controlceardach
 
SVN Usage & Best Practices
SVN Usage & Best PracticesSVN Usage & Best Practices
SVN Usage & Best PracticesAshraf Fouad
 
#DOAW16 - DevOps@work Roma 2016 - Databases under source control
#DOAW16 - DevOps@work Roma 2016 - Databases under source control#DOAW16 - DevOps@work Roma 2016 - Databases under source control
#DOAW16 - DevOps@work Roma 2016 - Databases under source controlAlessandro Alpi
 
Managing SQLserver for the reluctant DBA
Managing SQLserver for the reluctant DBAManaging SQLserver for the reluctant DBA
Managing SQLserver for the reluctant DBAConcentrated Technology
 
Software Build processes and Git
Software Build processes and GitSoftware Build processes and Git
Software Build processes and GitAlec Clews
 
Embracing Distributed Version Control
Embracing Distributed Version ControlEmbracing Distributed Version Control
Embracing Distributed Version ControlNowell Strite
 
Frequently Used Off Host Developer Toolsl
Frequently Used Off Host Developer ToolslFrequently Used Off Host Developer Toolsl
Frequently Used Off Host Developer ToolslSharan S
 
Feature Based Web Development with Bazaar
Feature Based Web Development with BazaarFeature Based Web Development with Bazaar
Feature Based Web Development with Bazaaryogomozilla
 
Bri forum advanced web interface customizations
Bri forum   advanced web interface customizationsBri forum   advanced web interface customizations
Bri forum advanced web interface customizationsCCOSTAN
 
A Sneak Peek At Visual Studio 2010 And .Net Framework 4.0
A Sneak Peek At Visual Studio 2010 And .Net Framework 4.0A Sneak Peek At Visual Studio 2010 And .Net Framework 4.0
A Sneak Peek At Visual Studio 2010 And .Net Framework 4.0Antonio Chagoury
 
Jeremy thake introducing alm to share point development implementations (ap...
Jeremy thake   introducing alm to share point development implementations (ap...Jeremy thake   introducing alm to share point development implementations (ap...
Jeremy thake introducing alm to share point development implementations (ap...Jeremy Thake
 
Blug connections
Blug connectionsBlug connections
Blug connectionsWannes Rams
 
Advanced Web Interface Customizations - BriForum 2010
Advanced Web Interface Customizations - BriForum 2010Advanced Web Interface Customizations - BriForum 2010
Advanced Web Interface Customizations - BriForum 2010shoesing
 
San Diego ASP.NET Meeting Oct 21st
San  Diego  ASP.NET Meeting Oct 21stSan  Diego  ASP.NET Meeting Oct 21st
San Diego ASP.NET Meeting Oct 21stWoody Pewitt
 
CM Web Application Presentation
CM Web Application PresentationCM Web Application Presentation
CM Web Application PresentationAndrew McGarry
 
Building Buzzword (Flex Camp Boston 2007)
Building Buzzword (Flex Camp Boston 2007)Building Buzzword (Flex Camp Boston 2007)
Building Buzzword (Flex Camp Boston 2007)dcoletta
 

Similaire à Team Foundation Server - Source Control (20)

ClearCase Basics
ClearCase BasicsClearCase Basics
ClearCase Basics
 
Intro To Version Control
Intro To Version ControlIntro To Version Control
Intro To Version Control
 
SVN Usage & Best Practices
SVN Usage & Best PracticesSVN Usage & Best Practices
SVN Usage & Best Practices
 
#DOAW16 - DevOps@work Roma 2016 - Databases under source control
#DOAW16 - DevOps@work Roma 2016 - Databases under source control#DOAW16 - DevOps@work Roma 2016 - Databases under source control
#DOAW16 - DevOps@work Roma 2016 - Databases under source control
 
Managing SQLserver for the reluctant DBA
Managing SQLserver for the reluctant DBAManaging SQLserver for the reluctant DBA
Managing SQLserver for the reluctant DBA
 
Software Build processes and Git
Software Build processes and GitSoftware Build processes and Git
Software Build processes and Git
 
Embracing Distributed Version Control
Embracing Distributed Version ControlEmbracing Distributed Version Control
Embracing Distributed Version Control
 
Frequently Used Off Host Developer Toolsl
Frequently Used Off Host Developer ToolslFrequently Used Off Host Developer Toolsl
Frequently Used Off Host Developer Toolsl
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
VS TFS 2010 - Part2
VS TFS 2010 - Part2VS TFS 2010 - Part2
VS TFS 2010 - Part2
 
Managing SQLserver
Managing SQLserverManaging SQLserver
Managing SQLserver
 
Feature Based Web Development with Bazaar
Feature Based Web Development with BazaarFeature Based Web Development with Bazaar
Feature Based Web Development with Bazaar
 
Bri forum advanced web interface customizations
Bri forum   advanced web interface customizationsBri forum   advanced web interface customizations
Bri forum advanced web interface customizations
 
A Sneak Peek At Visual Studio 2010 And .Net Framework 4.0
A Sneak Peek At Visual Studio 2010 And .Net Framework 4.0A Sneak Peek At Visual Studio 2010 And .Net Framework 4.0
A Sneak Peek At Visual Studio 2010 And .Net Framework 4.0
 
Jeremy thake introducing alm to share point development implementations (ap...
Jeremy thake   introducing alm to share point development implementations (ap...Jeremy thake   introducing alm to share point development implementations (ap...
Jeremy thake introducing alm to share point development implementations (ap...
 
Blug connections
Blug connectionsBlug connections
Blug connections
 
Advanced Web Interface Customizations - BriForum 2010
Advanced Web Interface Customizations - BriForum 2010Advanced Web Interface Customizations - BriForum 2010
Advanced Web Interface Customizations - BriForum 2010
 
San Diego ASP.NET Meeting Oct 21st
San  Diego  ASP.NET Meeting Oct 21stSan  Diego  ASP.NET Meeting Oct 21st
San Diego ASP.NET Meeting Oct 21st
 
CM Web Application Presentation
CM Web Application PresentationCM Web Application Presentation
CM Web Application Presentation
 
Building Buzzword (Flex Camp Boston 2007)
Building Buzzword (Flex Camp Boston 2007)Building Buzzword (Flex Camp Boston 2007)
Building Buzzword (Flex Camp Boston 2007)
 

Dernier

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slidevu2urc
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024The Digital Insurer
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationSafe Software
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsJoaquim Jorge
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Drew Madelung
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdfhans926745
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...apidays
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreternaman860154
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessPixlogix Infotech
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxMalak Abu Hammad
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptxHampshireHUG
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024Rafal Los
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountPuma Security, LLC
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerThousandEyes
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘RTylerCroy
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonetsnaman860154
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024Results
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEarley Information Science
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slidespraypatel2
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfsudhanshuwaghmare1
 

Dernier (20)

Histor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slideHistor y of HAM Radio presentation slide
Histor y of HAM Radio presentation slide
 
Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024Axa Assurance Maroc - Insurer Innovation Award 2024
Axa Assurance Maroc - Insurer Innovation Award 2024
 
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time AutomationFrom Event to Action: Accelerate Your Decision Making with Real-Time Automation
From Event to Action: Accelerate Your Decision Making with Real-Time Automation
 
Artificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and MythsArtificial Intelligence: Facts and Myths
Artificial Intelligence: Facts and Myths
 
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
Strategies for Unlocking Knowledge Management in Microsoft 365 in the Copilot...
 
[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf[2024]Digital Global Overview Report 2024 Meltwater.pdf
[2024]Digital Global Overview Report 2024 Meltwater.pdf
 
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
Apidays Singapore 2024 - Building Digital Trust in a Digital Economy by Veron...
 
Presentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreterPresentation on how to chat with PDF using ChatGPT code interpreter
Presentation on how to chat with PDF using ChatGPT code interpreter
 
Advantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your BusinessAdvantages of Hiring UIUX Design Service Providers for Your Business
Advantages of Hiring UIUX Design Service Providers for Your Business
 
The Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptxThe Codex of Business Writing Software for Real-World Solutions 2.pptx
The Codex of Business Writing Software for Real-World Solutions 2.pptx
 
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
04-2024-HHUG-Sales-and-Marketing-Alignment.pptx
 
The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024The 7 Things I Know About Cyber Security After 25 Years | April 2024
The 7 Things I Know About Cyber Security After 25 Years | April 2024
 
Breaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path MountBreaking the Kubernetes Kill Chain: Host Path Mount
Breaking the Kubernetes Kill Chain: Host Path Mount
 
How to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected WorkerHow to Troubleshoot Apps for the Modern Connected Worker
How to Troubleshoot Apps for the Modern Connected Worker
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
How to convert PDF to text with Nanonets
How to convert PDF to text with NanonetsHow to convert PDF to text with Nanonets
How to convert PDF to text with Nanonets
 
A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024A Call to Action for Generative AI in 2024
A Call to Action for Generative AI in 2024
 
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptxEIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
EIS-Webinar-Prompt-Knowledge-Eng-2024-04-08.pptx
 
Slack Application Development 101 Slides
Slack Application Development 101 SlidesSlack Application Development 101 Slides
Slack Application Development 101 Slides
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

Team Foundation Server - Source Control

  • 1. Team Foundation Server Source Control Dhirendra Singh Principal Software Engineer Zenevo Technologies
  • 2. Agenda TFS- an Overview Managing Branches Merging Code Integration
  • 3. What is Team Foundation Server? It is the “Glue” that connects our team What am I supposed to do? What’s my progress? What’s broken? Helps manage project artifacts Source Control
  • 5. How it is helping us? Helps our team communicate Centralized place to manage our project Data is captured automatically Everyone looks at the same data It is Customizable Artifacts version/source control Minimize / eliminate lost work Reproducible builds & product state
  • 6. Team Foundation Server Team Foundation Server Version Control Reporting and BI Team Build Work Item Tracking Team Portal
  • 7. Team Foundation Server Dev Team (Remote) Dev Team (Local) Build Agent Windows 2003 Server SQL Server 2005 IIS 6.0 Business User Version Control Proxy (Remote) Active Directory HTTP / S TCP/IP Team Foundation Server
  • 8. TFS Source Control: Terminology Workspaces Area on local disk where you edit files Check in / check out Check out marks the beginning of your edits Check in commits your changes to the repository TFS allows shared check out Changesets Group of changes that happen when you check in It works similarly as Label Shelving Similar to check in Changes get stored on the server Not visible as part of the main project source tree For the purpose of Park your changes & go ahead Branching Used to manage multiple versions of a product Helps in Release Process (Bug Fixes, Developing new features, Service Packs) 8
  • 9. TFS does more than just check-in and check-out Branching and merging Facilitates simultaneous development of multiple versions of an application Applying Labels Cloaking Shelve & Unshelve
  • 10. What should go into source control? Solution files -- *.sln Project files -- *.csproj, *.vbproj Source Control Project Metadata (*.vspscc) Project bindings Source control configuration Application config files (*.config) Source files Project Binaries dependency references (e.g. Third Party dlls, Components) 10
  • 11. What shouldnot go in source control? Solution user option files (*.suo) Local user customizations Project user option files (*.user) Local user customizations WebInfo files (*.webinfo) Build outputs /bin/debug /bin/release /obj 11
  • 12. Client-side vs Server-side Structure Directory structure should be the same Client-side structure should match server Simplifies “Get Latest” Everyone has the same directory layout This doesn’t mean that everyone has to put their source in the same place on disk The relative paths should match Root path of source tree can be different 12
  • 13. Plan your Repository Recommended file structure for Version Control.
  • 15. Don’t Branch... until You have a good reason Life only gets more complex with branching Favor Labels over Branches You can always branch from a Label later 15
  • 16. When to branch…The Signs… Regular broken builds Features in parallel development that need to edit one another Branch so that each feature can develop in isolation Merge changes later Avoid source tree being polluted with experimental code. Allow work on different versions of product at same time Support maintenance releases etc Allow parallel Development Ask yourself if the productivity gained by the branch is balanced against the pain (anti-productivity) of merging changes back 16
  • 17. SO…IF YOU REALLY MUST BRANCH… 17
  • 18. Branching Scenarios No Branching Everyone works from the same code Branch for Release Stabilization in order to prepare for a release Branch for Maintenance Maintenance of a previous build/release Service pack development Branch for Feature Branch from the Trunk to develop a new feature (such as a new module in isolation) Merge back into the Trunk when feature is done Branch for Multiple Teams Branches for multiple teams working on a set of features 18
  • 19. Branch For Release : Process ainbr />Sourcebr />elease 1br />Sourcebr />elease 2br />Sourcebr />19
  • 20. Branch For Maintenance Similar to Branch For Release ainbr />Sourcebr />aintenancebr />Release 1br />Sourcebr />Release 2br />Sourcebr />20
  • 21. Branch For Feature Branching for development isolation ainbr />Sourcebr />evelopmentbr />Feature 1br />Sourcebr />Feature 2br />Sourcebr />Feature 3br />Sourcebr />21
  • 22. Branch For Feature: The Process 22
  • 23. Branch For Teams ainbr />Sourcebr />evelopmentbr />Team 1br />Feature 1br />Sourcebr />Feature 2br />Source br />Team 2br />Feature 1br />Sourcebr />Feature 2br />Source br />23
  • 24. Branching Overkill Minimize the number of branches Watch out for branching problems Missed deadlines because the merge is too difficult, long, intricate, etc Releases take forever because fixes have to go through multiple layers of merge You’re simply spending too much time doing merges 24
  • 25. Branching and Merging Source: http://downloads.seapine.com/pub/papers/SCMBranchingModels.pdf
  • 26. Demo Create a branch Merge changes Create/resolve a check-in conflict Discussion about Baseless Merge
  • 27. Some News… Bad news Some features are command-line only Good news There’s a lot you can do from the command-line Scriptable
  • 28. Beyond the GUITF.exe is your Friend The most powerful for Team Foundation Source Control is the command line.
  • 29. TF.exe Command-line interface to TFS source control 30+ sub commands Kind of like “net” command in Windows Why would you want to use the command line version? It’s cool Some things aren’t available through the UI Good for automated operations (builds, etc)
  • 30. The Commands Add Branch / Branches Changeset Checkin / Checkout Configure Delete / Undelete Dir Get History Label / Labels / Unlabel Lock Merge / Merges Move Permission Properties Rename Resolve Shelve / Unshelve Status Undo View Workfold Workspace / Workspaces
  • 31. Things you (probably) can’t do through the GUI Find files in TFS by name/wildcard tf dir Get particular version of a file(s) by wildcard tf get Find checked out / pending change files tf status What will be changed by a “get latest”? tf get /preview Baseless merges tf merge /baseless Eliminating a changeset from a merge tf merge /discard
  • 32. And Last but not the Least…
  • 33. Baby Come Back Accessing Deleted Files Tools, Options, Source Control, Show deleted items in Source Control Explorer. Undelete file. Remember to add to solution…
  • 34. Extending TFS Use the .NET object model to extend Team Foundation Server
  • 35. Check out != Get Latest and Also Check-in != Get Latest
  • 36. Change != Bad TFS is new and different – you folks will need time to adjust.
  • 37. Best Practices- References http://www.codeplex.com/TFSGuide Lots of great info Free Released Aug 2007 37
  • 38. Question and Answer Dhirendra Singh Principal Software Engineer Zenevo Technologies Pvt. Ltd. dheerendra.singh@zenevo.com Singh.dheerendra@gmail.com www.zenevo.com