SlideShare a Scribd company logo
1 of 43
Advanced Branching and
Merging              Presenter

We will begin
in a few moments

                        Michael Lester
                            Wandisco
                        Director of Training
Advanced Branching and
Merging
Outline

           Definition of concurrent
             development
           What is a branch
           What triggers a branch
           Not all branches require a merge
              Branching Demonstration
           Types of Merges
           How to do a merge
           Merge info
              Merging Demonstration
           Conclusions
                                               3
This training is done with the latest
TortoiseSVN Version




         http://www.wandisco.com/subversion/download
Concurrent Development




    Definition
     When the same code/project has multiple
     developers working at the same time.




                                               5
Concurrent Development

Subversion tools that support concurrent development


     Author identification

     Difference reporting

     Branching

     Merging

     Hook scripts
                                                       6
Who changed / created / deleted what




                                       7
Who changed / created / deleted what

 Author information is available
 through svnlook command

                    svnlook author -r 40 /var/svn/repos




                                   And statistics




                                                          8
What is a Branch



The basic concept of a branch:
          A line of development that exists
            independently of another line
A branch always begins life as a copy of something,
and moves on from there, generating its own history.


                                                    3rd branch
                                      1st branch
       Original line of development

                                                   2nd branch


                                                                 9
Reasons for Branching




      •   Releasing patches for systems
          already in production.
      •   Preparing interim releases for
          testing and user evaluation.
      •   Working on more than one major
          version of the same code-base.
      •   Major changes require independent
          development


                                              10
Release patches (bug-fix)


  Payroll application       Rel 1.0




     Trunk

                            Rel 1.0




     Trunk



                                      11
When to branch



  • Concurrent development
      • To isolate development
  • To create tag projects
      • Keep track of released code
  • Custom branch
      • Limited use
      • To test unapproved changes




                                      12
When NOT to branch




     • Small changes

     • From “TAGS” folder




                            13
Branching from working copy




                              14
Branching from the TAGS folder


  Pros and Cons


                            There is a bug in Rel 1.0
                            What do you do?
                           1. Create a bug fix branch
                           1. Create a bug fix branch
                           2. Fix the bug
                           3. Create another “release”
                                 tags folder branch
                                        Check
                                           out




                                 Commit            Edit




                                          Update




                                                          15
Extending the TAGS folder


  Pros and Cons


                             There is a bug in Rel 1.0
                             What do you do?
                            1. Checkout and Commit
                                 to the Rel1.0 branch


                                          Check
                                           out




                                 Commit            Edit




                                          Update




                                                          16
How do you keep track of
 “What is the actual release”




                                17
Identifying Branches in Subversion




                                     18
Deleting Branches



Remember:
 The directory (project) can
 always be recovered, but will
 not display in the list
 command unless a specific
 revision (53) is specified.




                                 19
Merging in action
Bug fix / concurrent development




                                   20
Merging in action

                             one
                             two
   Now the branch            three
                             four
      changes                5
                     one     six
                     two     Seven
                     three   Eight
                     four
                     five
                     six
                     Seven   one
                     eight   twotwo
   While the trunk           three
                             four
     changes                 five
                             six
                             Seven7
                             eight


                                      21
Merging in action – modification occurs



  After both commits


        mike-bigfix-01172011




            Trunk




                                          22
Merging in action




You always start
 from a working
     folder




                    mike-bigfix-01172011




                                           23
Merging in action – changes are made




                 one
                 twotwo
                 three
                 four
                 5
                 six
                 Seven7
                 eight
                                       24
Merging in action – Commit to trunk




                                      25
Merging in action – mergeinfo

   The property svn:mergeinfo
     is added automatically




                                26
Merging in action

 The revision numbers 9 – 11 are the
 starting and ending changes in the branch




                                             27
Merge information

 You can view the branch
 information graphically




                           28
Merging in action – collision ahead

                                      one
                                      two22two
   Now the branch                     three
                                      four
      changes                         5
                       one            six
                       two            Seven
                       three          Eight
                       four
                       five
                       six
                       Seven          one
                       eight          twotwo
   While the trunk                    three
                                      four
     changes                          five
                                      six
                                      Seven7
                                      eight


                                                 29
Merging in action




                    30
Merging in action




                    31
Merging in action – Resolve the conflict




  Before you canyou a commit to do a
   Remember – do still have you
  must tell Subversion that the
   commit to update the repository
  conflicts have been resolved


                                           32
Special merging situations – no change in trunk


 After branch changes


          bigfix-20311
                          11    12    13    14




     7       8       9


         Trunk
                                  Merge like normal
                 svn:mergeinfo /payroll/bugfix-20311:11-14

             Check out have to merge ? version
                 Do I the trunk HEAD

                                                             33
Using the hidden menu to merge




        Shift/right click



                                 34
Include merged revisions in Log Messages




                                           35
Command line mergeinfo command


C:sourcenewFeature>svn mergeinfo c:sourcepayroll
      --show-revs merged
r15
r18

C:sourcenewFeature>svn mergeinfo c:sourcepayroll
      --show-revs eligible
r21




This can be used to show what has
been merged and what could be merged




                                                       36
Cherrypicking


This refers to choosing one
specific changeset from a
branch and replicating it to      This fixed a
                                      bug
another.                         reproducable
                                  in the trunk   This added a
                                                 new feature
                                                 for a unique
                                                  customer
                 Custom Branch




           TRUNK




                                                                37
Cherrypicking


 How does the other
 branch find out about   I It wasalogged as
                           fixed bug in my
 the useful code?           custom project
                              bug fix 1655.
                          Something about
                             that probably
                         exists in thesort”.
                          “customer trunk.




                                               38
Another reason for Log Messages


 How does the other
 branch find out about
 the useful code?




                                  39
Searching for log messages




                             40
Merge from log messages




                          41
Conclusions



      1. Practice
      2. Practice
      3. Add branching and merging to
         “Policies & Procedures”
      4. Train staff
      5. Revise your policies &
         Procedures



                                        42
April 4th
                                                      Subversion
                                                     Administration

                                                       Presenter




                                                     Michael Lester
                                                        April 18th
                                                          Wandisco
                                                      Director of Training
                                                     Introduction
                                                     to SmartSVN

Copyright © 2013 WANdisco.com All rights reserved.                           43

More Related Content

What's hot

The basics of version control
The basics of version controlThe basics of version control
The basics of version controlMatt Fielding
 
Scaling Continuous Integration Practices to Teams with Parallel Development
Scaling Continuous Integration Practices to Teams with Parallel DevelopmentScaling Continuous Integration Practices to Teams with Parallel Development
Scaling Continuous Integration Practices to Teams with Parallel DevelopmentIBM UrbanCode Products
 
White Paper: Compartmentalized Continuous Integration: Enabling Rapid, Flexib...
White Paper: Compartmentalized Continuous Integration: Enabling Rapid, Flexib...White Paper: Compartmentalized Continuous Integration: Enabling Rapid, Flexib...
White Paper: Compartmentalized Continuous Integration: Enabling Rapid, Flexib...Perforce
 

What's hot (6)

The basics of version control
The basics of version controlThe basics of version control
The basics of version control
 
Tfs Per Team Agili
Tfs Per Team AgiliTfs Per Team Agili
Tfs Per Team Agili
 
Introduction to Git (part 3)
Introduction to Git (part 3)Introduction to Git (part 3)
Introduction to Git (part 3)
 
2012 01-jenkins-udeploy
2012 01-jenkins-udeploy2012 01-jenkins-udeploy
2012 01-jenkins-udeploy
 
Scaling Continuous Integration Practices to Teams with Parallel Development
Scaling Continuous Integration Practices to Teams with Parallel DevelopmentScaling Continuous Integration Practices to Teams with Parallel Development
Scaling Continuous Integration Practices to Teams with Parallel Development
 
White Paper: Compartmentalized Continuous Integration: Enabling Rapid, Flexib...
White Paper: Compartmentalized Continuous Integration: Enabling Rapid, Flexib...White Paper: Compartmentalized Continuous Integration: Enabling Rapid, Flexib...
White Paper: Compartmentalized Continuous Integration: Enabling Rapid, Flexib...
 

Viewers also liked

Supporting Digital Media Workflows in the Cloud with Perforce Helix
Supporting Digital Media Workflows in the Cloud with Perforce HelixSupporting Digital Media Workflows in the Cloud with Perforce Helix
Supporting Digital Media Workflows in the Cloud with Perforce HelixPerforce
 
02.28.13 WANDisco SVN Training: Getting Info Out of SVN
02.28.13 WANDisco SVN Training: Getting Info Out of SVN02.28.13 WANDisco SVN Training: Getting Info Out of SVN
02.28.13 WANDisco SVN Training: Getting Info Out of SVNWANdisco Plc
 
Is Trunk-based Development Easy in Game Development?
Is Trunk-based Development Easy in Game Development?Is Trunk-based Development Easy in Game Development?
Is Trunk-based Development Easy in Game Development?Perforce
 
Trunk Based Development
Trunk Based DevelopmentTrunk Based Development
Trunk Based DevelopmentCarlos Lopes
 
Trunk based development
Trunk based developmentTrunk based development
Trunk based developmentgo_oh
 
Non-Stop Hadoop for Hortonworks
Non-Stop Hadoop for Hortonworks Non-Stop Hadoop for Hortonworks
Non-Stop Hadoop for Hortonworks Hortonworks
 

Viewers also liked (6)

Supporting Digital Media Workflows in the Cloud with Perforce Helix
Supporting Digital Media Workflows in the Cloud with Perforce HelixSupporting Digital Media Workflows in the Cloud with Perforce Helix
Supporting Digital Media Workflows in the Cloud with Perforce Helix
 
02.28.13 WANDisco SVN Training: Getting Info Out of SVN
02.28.13 WANDisco SVN Training: Getting Info Out of SVN02.28.13 WANDisco SVN Training: Getting Info Out of SVN
02.28.13 WANDisco SVN Training: Getting Info Out of SVN
 
Is Trunk-based Development Easy in Game Development?
Is Trunk-based Development Easy in Game Development?Is Trunk-based Development Easy in Game Development?
Is Trunk-based Development Easy in Game Development?
 
Trunk Based Development
Trunk Based DevelopmentTrunk Based Development
Trunk Based Development
 
Trunk based development
Trunk based developmentTrunk based development
Trunk based development
 
Non-Stop Hadoop for Hortonworks
Non-Stop Hadoop for Hortonworks Non-Stop Hadoop for Hortonworks
Non-Stop Hadoop for Hortonworks
 

Similar to 03.13.13 WANDisco SVN Training: Advanced Branching & Merging

JavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control systemJavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control systemGilad Garon
 
Git vs Subversion: ¿Cuando elegir uno u otro?
Git vs Subversion: ¿Cuando elegir uno u otro?Git vs Subversion: ¿Cuando elegir uno u otro?
Git vs Subversion: ¿Cuando elegir uno u otro?Paradigma Digital
 
Git Branching for Agile Teams
Git Branching for Agile Teams Git Branching for Agile Teams
Git Branching for Agile Teams Atlassian
 
SVN Tool Information : Best Practices
SVN Tool Information  : Best PracticesSVN Tool Information  : Best Practices
SVN Tool Information : Best PracticesMaidul Islam
 
01 - Introduction to Version Control
01 - Introduction to Version Control01 - Introduction to Version Control
01 - Introduction to Version ControlSergii Shmarkatiuk
 
Distributed Version Control (DVCS) With Mercurial
Distributed Version Control (DVCS) With MercurialDistributed Version Control (DVCS) With Mercurial
Distributed Version Control (DVCS) With MercurialTed Naleid
 
Source Code Management Slides
Source Code Management SlidesSource Code Management Slides
Source Code Management Slidesdaschuck
 
Version Control Training - First Lego League
Version Control Training - First Lego LeagueVersion Control Training - First Lego League
Version Control Training - First Lego LeagueJeffrey T. Pollock
 
Clarive 7 Branching Model
Clarive 7 Branching ModelClarive 7 Branching Model
Clarive 7 Branching ModelClarive
 
Git usage (Basics and workflow)
Git usage (Basics and workflow)Git usage (Basics and workflow)
Git usage (Basics and workflow)Yeasin Abedin
 
Alm tce parallel development
Alm tce parallel developmentAlm tce parallel development
Alm tce parallel developmentshalom938
 
Git your life for fun & profit
Git your life for fun & profitGit your life for fun & profit
Git your life for fun & profitGeeks Anonymes
 

Similar to 03.13.13 WANDisco SVN Training: Advanced Branching & Merging (20)

JavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control systemJavaEdge 2008: Your next version control system
JavaEdge 2008: Your next version control system
 
Git vs Subversion: ¿Cuando elegir uno u otro?
Git vs Subversion: ¿Cuando elegir uno u otro?Git vs Subversion: ¿Cuando elegir uno u otro?
Git vs Subversion: ¿Cuando elegir uno u otro?
 
SVN Information
SVN Information  SVN Information
SVN Information
 
Introduction to Git
Introduction to GitIntroduction to Git
Introduction to Git
 
Git Branching for Agile Teams
Git Branching for Agile Teams Git Branching for Agile Teams
Git Branching for Agile Teams
 
Git workflows
Git workflowsGit workflows
Git workflows
 
SVN Tool Information : Best Practices
SVN Tool Information  : Best PracticesSVN Tool Information  : Best Practices
SVN Tool Information : Best Practices
 
01 - Introduction to Version Control
01 - Introduction to Version Control01 - Introduction to Version Control
01 - Introduction to Version Control
 
Distributed Version Control (DVCS) With Mercurial
Distributed Version Control (DVCS) With MercurialDistributed Version Control (DVCS) With Mercurial
Distributed Version Control (DVCS) With Mercurial
 
Source Code Management Slides
Source Code Management SlidesSource Code Management Slides
Source Code Management Slides
 
Version Control Training - First Lego League
Version Control Training - First Lego LeagueVersion Control Training - First Lego League
Version Control Training - First Lego League
 
Clarive 7 Branching Model
Clarive 7 Branching ModelClarive 7 Branching Model
Clarive 7 Branching Model
 
Version control 101
Version control 101Version control 101
Version control 101
 
Git usage (Basics and workflow)
Git usage (Basics and workflow)Git usage (Basics and workflow)
Git usage (Basics and workflow)
 
Branching Over The Top!
Branching Over The Top!Branching Over The Top!
Branching Over The Top!
 
Alm tce parallel development
Alm tce parallel developmentAlm tce parallel development
Alm tce parallel development
 
Git Pull Requests
Git Pull RequestsGit Pull Requests
Git Pull Requests
 
Git your life for fun & profit
Git your life for fun & profitGit your life for fun & profit
Git your life for fun & profit
 
Git your life for fun & profit
Git your life for fun & profitGit your life for fun & profit
Git your life for fun & profit
 
Ultimate Git Workflow - Seoul 2015
Ultimate Git Workflow - Seoul 2015Ultimate Git Workflow - Seoul 2015
Ultimate Git Workflow - Seoul 2015
 

More from WANdisco Plc

Supporting Financial Services with a More Flexible Approach to Big Data
Supporting Financial Services with a More Flexible Approach to Big DataSupporting Financial Services with a More Flexible Approach to Big Data
Supporting Financial Services with a More Flexible Approach to Big DataWANdisco Plc
 
Hadoop scalability
Hadoop scalabilityHadoop scalability
Hadoop scalabilityWANdisco Plc
 
Forrester On Using Subversion to Optimize Globally Distributed Development
Forrester On Using Subversion to Optimize Globally Distributed DevelopmentForrester On Using Subversion to Optimize Globally Distributed Development
Forrester On Using Subversion to Optimize Globally Distributed DevelopmentWANdisco Plc
 
02.28.13 WANdisco ApacheCon 2013
02.28.13 WANdisco ApacheCon 201302.28.13 WANdisco ApacheCon 2013
02.28.13 WANdisco ApacheCon 2013WANdisco Plc
 
Hadoop and WANdisco: The Future of Big Data
Hadoop and WANdisco: The Future of Big DataHadoop and WANdisco: The Future of Big Data
Hadoop and WANdisco: The Future of Big DataWANdisco Plc
 
uberSVN introduction by WANdisco
uberSVN introduction by WANdiscouberSVN introduction by WANdisco
uberSVN introduction by WANdiscoWANdisco Plc
 
WANdisco Subversion Support Services
WANdisco Subversion Support ServicesWANdisco Subversion Support Services
WANdisco Subversion Support ServicesWANdisco Plc
 
Make Subversion Agile
Make Subversion AgileMake Subversion Agile
Make Subversion AgileWANdisco Plc
 
Subversion in 2010 and Beyond
Subversion in 2010 and BeyondSubversion in 2010 and Beyond
Subversion in 2010 and BeyondWANdisco Plc
 
Forrester Research on Optimizing Globally Distributed Software Development Us...
Forrester Research on Optimizing Globally Distributed Software Development Us...Forrester Research on Optimizing Globally Distributed Software Development Us...
Forrester Research on Optimizing Globally Distributed Software Development Us...WANdisco Plc
 
Forrester Research on Globally Distributed Development Using Subversion
Forrester Research on Globally Distributed Development Using SubversionForrester Research on Globally Distributed Development Using Subversion
Forrester Research on Globally Distributed Development Using SubversionWANdisco Plc
 

More from WANdisco Plc (13)

Supporting Financial Services with a More Flexible Approach to Big Data
Supporting Financial Services with a More Flexible Approach to Big DataSupporting Financial Services with a More Flexible Approach to Big Data
Supporting Financial Services with a More Flexible Approach to Big Data
 
Hadoop scalability
Hadoop scalabilityHadoop scalability
Hadoop scalability
 
Forrester On Using Subversion to Optimize Globally Distributed Development
Forrester On Using Subversion to Optimize Globally Distributed DevelopmentForrester On Using Subversion to Optimize Globally Distributed Development
Forrester On Using Subversion to Optimize Globally Distributed Development
 
02.28.13 WANdisco ApacheCon 2013
02.28.13 WANdisco ApacheCon 201302.28.13 WANdisco ApacheCon 2013
02.28.13 WANdisco ApacheCon 2013
 
Hadoop and WANdisco: The Future of Big Data
Hadoop and WANdisco: The Future of Big DataHadoop and WANdisco: The Future of Big Data
Hadoop and WANdisco: The Future of Big Data
 
uberSVN introduction by WANdisco
uberSVN introduction by WANdiscouberSVN introduction by WANdisco
uberSVN introduction by WANdisco
 
Subversion Zen
Subversion ZenSubversion Zen
Subversion Zen
 
WANdisco Subversion Support Services
WANdisco Subversion Support ServicesWANdisco Subversion Support Services
WANdisco Subversion Support Services
 
Make Subversion Agile
Make Subversion AgileMake Subversion Agile
Make Subversion Agile
 
Why Svn
Why SvnWhy Svn
Why Svn
 
Subversion in 2010 and Beyond
Subversion in 2010 and BeyondSubversion in 2010 and Beyond
Subversion in 2010 and Beyond
 
Forrester Research on Optimizing Globally Distributed Software Development Us...
Forrester Research on Optimizing Globally Distributed Software Development Us...Forrester Research on Optimizing Globally Distributed Software Development Us...
Forrester Research on Optimizing Globally Distributed Software Development Us...
 
Forrester Research on Globally Distributed Development Using Subversion
Forrester Research on Globally Distributed Development Using SubversionForrester Research on Globally Distributed Development Using Subversion
Forrester Research on Globally Distributed Development Using Subversion
 

Recently uploaded

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024Lonnie McRorey
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxLoriGlavin3
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxLoriGlavin3
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024Stephanie Beckett
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024BookNet Canada
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxBkGupta21
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLScyllaDB
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionDilum Bandara
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Mark Simos
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 3652toLead Limited
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.Curtis Poe
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity PlanDatabarracks
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .Alan Dix
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxLoriGlavin3
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024BookNet Canada
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESmohitsingh558521
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersRaghuram Pandurangan
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Mattias Andersson
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenHervé Boutemy
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek SchlawackFwdays
 

Recently uploaded (20)

TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024TeamStation AI System Report LATAM IT Salaries 2024
TeamStation AI System Report LATAM IT Salaries 2024
 
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptxPasskey Providers and Enabling Portability: FIDO Paris Seminar.pptx
Passkey Providers and Enabling Portability: FIDO Paris Seminar.pptx
 
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptxA Deep Dive on Passkeys: FIDO Paris Seminar.pptx
A Deep Dive on Passkeys: FIDO Paris Seminar.pptx
 
What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024What's New in Teams Calling, Meetings and Devices March 2024
What's New in Teams Calling, Meetings and Devices March 2024
 
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
Transcript: New from BookNet Canada for 2024: BNC CataList - Tech Forum 2024
 
unit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptxunit 4 immunoblotting technique complete.pptx
unit 4 immunoblotting technique complete.pptx
 
Developer Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQLDeveloper Data Modeling Mistakes: From Postgres to NoSQL
Developer Data Modeling Mistakes: From Postgres to NoSQL
 
Advanced Computer Architecture – An Introduction
Advanced Computer Architecture – An IntroductionAdvanced Computer Architecture – An Introduction
Advanced Computer Architecture – An Introduction
 
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
Tampa BSides - Chef's Tour of Microsoft Security Adoption Framework (SAF)
 
Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365Ensuring Technical Readiness For Copilot in Microsoft 365
Ensuring Technical Readiness For Copilot in Microsoft 365
 
How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.How AI, OpenAI, and ChatGPT impact business and software.
How AI, OpenAI, and ChatGPT impact business and software.
 
How to write a Business Continuity Plan
How to write a Business Continuity PlanHow to write a Business Continuity Plan
How to write a Business Continuity Plan
 
From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .From Family Reminiscence to Scholarly Archive .
From Family Reminiscence to Scholarly Archive .
 
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptxMerck Moving Beyond Passwords: FIDO Paris Seminar.pptx
Merck Moving Beyond Passwords: FIDO Paris Seminar.pptx
 
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
New from BookNet Canada for 2024: Loan Stars - Tech Forum 2024
 
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICESSALESFORCE EDUCATION CLOUD | FEXLE SERVICES
SALESFORCE EDUCATION CLOUD | FEXLE SERVICES
 
Generative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information DevelopersGenerative AI for Technical Writer or Information Developers
Generative AI for Technical Writer or Information Developers
 
Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?Are Multi-Cloud and Serverless Good or Bad?
Are Multi-Cloud and Serverless Good or Bad?
 
DevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache MavenDevoxxFR 2024 Reproducible Builds with Apache Maven
DevoxxFR 2024 Reproducible Builds with Apache Maven
 
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
"Subclassing and Composition – A Pythonic Tour of Trade-Offs", Hynek Schlawack
 

03.13.13 WANDisco SVN Training: Advanced Branching & Merging

  • 1. Advanced Branching and Merging Presenter We will begin in a few moments Michael Lester Wandisco Director of Training
  • 3. Outline  Definition of concurrent development  What is a branch  What triggers a branch  Not all branches require a merge  Branching Demonstration  Types of Merges  How to do a merge  Merge info  Merging Demonstration  Conclusions 3
  • 4. This training is done with the latest TortoiseSVN Version http://www.wandisco.com/subversion/download
  • 5. Concurrent Development Definition When the same code/project has multiple developers working at the same time. 5
  • 6. Concurrent Development Subversion tools that support concurrent development Author identification Difference reporting Branching Merging Hook scripts 6
  • 7. Who changed / created / deleted what 7
  • 8. Who changed / created / deleted what Author information is available through svnlook command svnlook author -r 40 /var/svn/repos And statistics 8
  • 9. What is a Branch The basic concept of a branch: A line of development that exists independently of another line A branch always begins life as a copy of something, and moves on from there, generating its own history. 3rd branch 1st branch Original line of development 2nd branch 9
  • 10. Reasons for Branching • Releasing patches for systems already in production. • Preparing interim releases for testing and user evaluation. • Working on more than one major version of the same code-base. • Major changes require independent development 10
  • 11. Release patches (bug-fix) Payroll application Rel 1.0 Trunk Rel 1.0 Trunk 11
  • 12. When to branch • Concurrent development • To isolate development • To create tag projects • Keep track of released code • Custom branch • Limited use • To test unapproved changes 12
  • 13. When NOT to branch • Small changes • From “TAGS” folder 13
  • 15. Branching from the TAGS folder Pros and Cons There is a bug in Rel 1.0 What do you do? 1. Create a bug fix branch 1. Create a bug fix branch 2. Fix the bug 3. Create another “release” tags folder branch Check out Commit Edit Update 15
  • 16. Extending the TAGS folder Pros and Cons There is a bug in Rel 1.0 What do you do? 1. Checkout and Commit to the Rel1.0 branch Check out Commit Edit Update 16
  • 17. How do you keep track of “What is the actual release” 17
  • 18. Identifying Branches in Subversion 18
  • 19. Deleting Branches Remember: The directory (project) can always be recovered, but will not display in the list command unless a specific revision (53) is specified. 19
  • 20. Merging in action Bug fix / concurrent development 20
  • 21. Merging in action one two Now the branch three four changes 5 one six two Seven three Eight four five six Seven one eight twotwo While the trunk three four changes five six Seven7 eight 21
  • 22. Merging in action – modification occurs After both commits mike-bigfix-01172011 Trunk 22
  • 23. Merging in action You always start from a working folder mike-bigfix-01172011 23
  • 24. Merging in action – changes are made one twotwo three four 5 six Seven7 eight 24
  • 25. Merging in action – Commit to trunk 25
  • 26. Merging in action – mergeinfo The property svn:mergeinfo is added automatically 26
  • 27. Merging in action The revision numbers 9 – 11 are the starting and ending changes in the branch 27
  • 28. Merge information You can view the branch information graphically 28
  • 29. Merging in action – collision ahead one two22two Now the branch three four changes 5 one six two Seven three Eight four five six Seven one eight twotwo While the trunk three four changes five six Seven7 eight 29
  • 32. Merging in action – Resolve the conflict Before you canyou a commit to do a Remember – do still have you must tell Subversion that the commit to update the repository conflicts have been resolved 32
  • 33. Special merging situations – no change in trunk After branch changes bigfix-20311 11 12 13 14 7 8 9 Trunk Merge like normal svn:mergeinfo /payroll/bugfix-20311:11-14 Check out have to merge ? version Do I the trunk HEAD 33
  • 34. Using the hidden menu to merge Shift/right click 34
  • 35. Include merged revisions in Log Messages 35
  • 36. Command line mergeinfo command C:sourcenewFeature>svn mergeinfo c:sourcepayroll  --show-revs merged r15 r18 C:sourcenewFeature>svn mergeinfo c:sourcepayroll  --show-revs eligible r21 This can be used to show what has been merged and what could be merged 36
  • 37. Cherrypicking This refers to choosing one specific changeset from a branch and replicating it to This fixed a bug another. reproducable in the trunk This added a new feature for a unique customer Custom Branch TRUNK 37
  • 38. Cherrypicking How does the other branch find out about I It wasalogged as fixed bug in my the useful code? custom project bug fix 1655. Something about that probably exists in thesort”. “customer trunk. 38
  • 39. Another reason for Log Messages How does the other branch find out about the useful code? 39
  • 40. Searching for log messages 40
  • 41. Merge from log messages 41
  • 42. Conclusions 1. Practice 2. Practice 3. Add branching and merging to “Policies & Procedures” 4. Train staff 5. Revise your policies & Procedures 42
  • 43. April 4th Subversion Administration Presenter Michael Lester April 18th Wandisco Director of Training Introduction to SmartSVN Copyright © 2013 WANdisco.com All rights reserved. 43

Editor's Notes

  1. ....1 CLICK
  2. ...1 CLICK
  3. 1 click
  4. ...3 CLICKS
  5. 3 clicks
  6. Do demo after
  7. ...1 CLICK
  8. 6 clicks
  9. ...1 CLICK
  10. ...1 CLICK
  11. ...1 Click
  12. 1 click
  13. ...1 CLICK
  14. 4 clicks
  15. ...1 CLICK
  16. 3 clicks
  17. ...3 CLICKS
  18. ...2 CLICKS