SlideShare une entreprise Scribd logo
1  sur  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

Contenu connexe

Tendances

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
 

Tendances (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...
 

En vedette

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
 

En vedette (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
 

Similaire à 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
 

Similaire à 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
 

Plus de 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
 

Plus de 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
 

Dernier

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
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyAlfredo García Lavilla
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024The Digital Insurer
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii SoldatenkoFwdays
 
"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
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsMemoori
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxNavinnSomaal
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brandgvaughan
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupFlorian Wilhelm
 
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
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsMark Billinghurst
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfRankYa
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostZilliz
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationSafe Software
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfSeasiaInfotech2
 
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
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxhariprasad279825
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Scott Keck-Warren
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr LapshynFwdays
 

Dernier (20)

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)
 
Commit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easyCommit 2024 - Secret Management made easy
Commit 2024 - Secret Management made easy
 
My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024My INSURER PTE LTD - Insurtech Innovation Award 2024
My INSURER PTE LTD - Insurtech Innovation Award 2024
 
"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko"Debugging python applications inside k8s environment", Andrii Soldatenko
"Debugging python applications inside k8s environment", Andrii Soldatenko
 
"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
 
AI as an Interface for Commercial Buildings
AI as an Interface for Commercial BuildingsAI as an Interface for Commercial Buildings
AI as an Interface for Commercial Buildings
 
SAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptxSAP Build Work Zone - Overview L2-L3.pptx
SAP Build Work Zone - Overview L2-L3.pptx
 
WordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your BrandWordPress Websites for Engineers: Elevate Your Brand
WordPress Websites for Engineers: Elevate Your Brand
 
Streamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project SetupStreamlining Python Development: A Guide to a Modern Project Setup
Streamlining Python Development: A Guide to a Modern Project Setup
 
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
 
Human Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR SystemsHuman Factors of XR: Using Human Factors to Design XR Systems
Human Factors of XR: Using Human Factors to Design XR Systems
 
Search Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdfSearch Engine Optimization SEO PDF for 2024.pdf
Search Engine Optimization SEO PDF for 2024.pdf
 
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage CostLeverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
Leverage Zilliz Serverless - Up to 50X Saving for Your Vector Storage Cost
 
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry InnovationBeyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
Beyond Boundaries: Leveraging No-Code Solutions for Industry Innovation
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
The Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdfThe Future of Software Development - Devin AI Innovative Approach.pdf
The Future of Software Development - Devin AI Innovative Approach.pdf
 
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
 
Artificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptxArtificial intelligence in cctv survelliance.pptx
Artificial intelligence in cctv survelliance.pptx
 
Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024Advanced Test Driven-Development @ php[tek] 2024
Advanced Test Driven-Development @ php[tek] 2024
 
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
"Federated learning: out of reach no matter how close",Oleksandr Lapshyn
 

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

Notes de l'éditeur

  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