USM - IT BRANCHING PRESENTATION. Branch copying a codeline to create a new one codelines evolve independently 141157162164170179195206 167177183 202 //depot/main/...

Slides:



Advertisements
Similar presentations
1 IST 410/420 Software Version Control 2 DevelopmentIntegration Test System Test User Acceptance Testing ProductionArchive DEVELOPMENTUSERS - Developers.
Advertisements

Page 1 October 31, 2000 An Introduction to Large-Scale Software Development Steve Varnau Core HP-UX Operation October 31, 2000.
MOSS 2007 Document Management Adam McCarthy 1 st April 2009.
Configuration Management
Resolving against moved files The setup: we have foo open for edit and want to submit, but it has been renamed, first to bar and then to ola. We need to.
DEV306. LEGEND Branching / Merging point Development Test Production R1 R2 R3 Branch On Test Development Test Production Branch On Test.
Source Control in MATLAB A tool for tracking changes in software development projects. Stuart Nelis & Rachel Sheldon.
Concepts of Version Control A Technology-Independent View.
2/6/2008Prof. Hilfinger CS164 Lecture 71 Version Control Lecture 7.
CS 501 : An Introduction to SCM & GForge An Introduction to SCM & GForge Lin Guo
Low level CASE: Source Code Management. Source Code Management  Also known as Configuration Management  Source Code Managers are tools that: –Archive.
Microsoft Visual Source Safe 6.01 Microsoft Visual Source Safe (MVSS) Presented By: Rachel Espinoza.
Source Code Management Or Configuration Management: How I learned to Stop Worrying and Hate My Co-workers Less.
Object Linking and Embedding A tool which allows different software application packages to share data.
Software Configuration Management
1 CMPT 275 Software Engineering Revision Control.
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
© 2006 Cisco Systems, Inc. All rights reserved. 1 My Colleagues Tool Granular (MCTG) Tour September 2008.
Software Configuration Management (SCM)
Version control Using Git 1Version control, using Git.
Version Control with Subversion. What is Version Control Good For? Maintaining project/file history - so you don’t have to worry about it Managing collaboration.
Craig Berntson Chief Software Gardener Mojo Software Worx Branches and Merges are Bears, Oh My!
Introduction to Version Control with SVN & Git CSC/ECE 517, Fall 2012 Titus Barik & Ed Gehringer, with help from Gaurav.
1 Topics for this Lecture Software maintenance in general Source control systems (intro to svn)
Software Engineering Modern Approaches
More RUP and Configuration Management CS3300 Fall 2015.
Introduction to Version Control
1 Lecture 19 Configuration Management Software Engineering.
1 Software Development Configuration management. \ 2 Software Configuration  Items that comprise all information produced as part of the software development.
Branching. Version Control - Branching A way to write code without affecting the rest of your team Merge branches to integrate your changes.
Version control Using Git Version control, using Git1.
Information Systems and Network Engineering Laboratory II DR. KEN COSH WEEK 1.
Computer Science and Engineering The Ohio State University  Widely used, especially in the opensource community, to track all changes to a project and.
Code and Asset Branching Best Practices Session 315 Philip Wolfe, Lead Developer Farm Credit Services of America.
 Tips and Tricks for Using StarTeam More Effectively StarTeam 3002 Preconference Tutorial.
11 Version Control Systems Mauro Jaskelioff (originally by Gail Hopkins)
CPSC 871 John D. McGregor Change management Module 2 Session 3.
CSC 4700 Software Engineering
Developer Best Practices R.SANTHANA GOPALAN. Developer Best Practices What is Workspace ? The directory where the developer edit the source files, compile,
European Middleware Initiative (EMI) The Software Engineering Model Alberto Di Meglio (CERN) Interim Project Director.
University of Southern California Center for Systems and Software Engineering Configuration Management: Concepts and Tools Pongtip Aroonvatanaporn CSCI.
Version Control and SVN ECE 297. Why Do We Need Version Control?
A Git Workflow Model Slides produced from blog by Vincent Driessen and secondary posting at The.
Source Control What technical communicators need to know.
1 CSE 303 Lecture 19 Version control and Subversion ( svn ) slides created by Marty Stepp
Information Systems and Network Engineering Laboratory I DR. KEN COSH WEEK 1.
Benjamin Day Get Good at DevOps: Feature Flag Deployments with ASP.NET, WebAPI, & JavaScript.
1 Ivan Marsic Rutgers University LECTURE 2: Software Configuration Management.
Git workflows: using multiple branches for parallel development SE-2800 Dr. Mark L. Hornick 1.
Perforce Overview1 형상관리 도구 Perforce 개요. Perforce Overview2 Perforcec 의 특징  Client/Server (over network)  극소 변경 작업  작업공간 관리  파일간의 브랜치  멀티 플래폼 지원 
Chapter 25 – Configuration Management 1Chapter 25 Configuration management.
Developers Users Committers How do I configure this now? Just one more fix and I am done! CVS Download/Use Software Submit problems/ request features Store.
CompSci 230 Software Construction
Introduction to Version Control with Git
Information Systems and Network Engineering Laboratory II
Configuration Management
LECTURE 2: Software Configuration Management
Version control, using Git
Branching Strategies for Web Development: Functionality vs. Content
Configuration Management
Version Control System
LECTURE 3: Software Configuration Management
Get Good at DevOps: Feature Flag Deployments with ASP
YeahMobi CD Practice based on Container -- openstack meetup
Branching and Merging Practices
Git Best Practices Jay Patel Git Best Practices.
Quality Assurance in an Agile Development Team Michelle Wu 2018 PNSQC
Chapter 25 – Configuration Management
Concurrent Versions System
Branches And Releases Branch for Urgent Bug Branch for Feature A
Presentation transcript:

USM - IT BRANCHING PRESENTATION

Branch copying a codeline to create a new one codelines evolve independently //depot/main/... //depot/rel1/... Source Target

Merge propagating changes from one codeline to another //depot/main/... //depot/rel1/... Source Target

Best Practices (c’td)  Have a development Codeline –evolves forever –ultimate destination for almost all changes - both maintenance fixes and new features - and –represents the primary, linear evolution of the software product  Use Project Codelines –branched from the mainline, –work that occurs in project branches is either propagated back to the mainline or abandoned

Best Practices (c’td)  Use Release Codelines –Reserved for testing and critical fixes, –Insulated from development –Includes only approved changes –Eventually all changes submitted to the release lines get merged into the mainline.

Best Practices (c’td)  Branch only when necessary  Don’t copy when you mean to branch –Copying is when you copy a set of source files from one codeline and check them in to another as new files. –Copying incurs all the cost of branching - additional entities and increased complexity - but without the benefit of branching support.

Best Practices (c’td)  Give each codeline a policy –Dev codeline is not to be released. –Release codeline should limit changes to approved bug fixes. –Integrate only from release line to dev line.  integrating from dev to release has the potential to introduce unintended changes into the release line.

Best Practices (c’td)  Branch instead of freeze –branch the codeline early enough so that developers can continue their work  Make original changes in the branch that has evolved the least since branching –Change release codeline and integrate into dev line.

How QA will use Vault to Build  QA build Approach –First - we build from the development or main trunk –Then - we branch the code and build from development

Building From Development Trunk  Step 1: QA locks Dev so that no changes can be submitted while the build is in process.

Building Dev, cont.  Step 2: QA Gets latest code from dev Trunk  Step 3: The code is built.  Step 4: After a successful build the code is labeled. –The label is then locked and can only be edited by an administrator.  Step 5: Once the code is finished being labeled the branch is then unlocked.

Release Candidate Builds  Get the tips from the dev branch and then create a release branch.  The release branch is named after version information. –Ex. _

Release Candidate Build, cont.  After the branch is created the code is synced, built, and labeled –Just like it is for a dev build.  The RC branch is not locked right away. –QA performs bug fix builds for a period of time on the RC branch. –No new enhancements are to be added to the branch unless a DR is submitted.

Integrating into Branches  If you have changes that need to be made to the release that was branched, integrate those changes into both the release branch and the Dev Branch. –There are times when you need to integrate into 3 branches. NOTE: Forgetting to integrate to the main trunk and branch(es) is a common mistake.

Locking Branches  At code freeze build, the release’s branch is locked. –Developers are no longer able to submit changes to the branch. –The branch will be unlocked for developers only for approved deviation requests.

Unlocking a Branch  When a branch is unlocked: –You will receive an unlock request from QA informing you that a branch has been unlocked for you. –You will be told the build that will be done to include your changes. –You will receive instructions on how to notify QA when: 1.You are done making your changes 2.You are ready for QA to do the DR build for the release

Complete Process