SlideShare una empresa de Scribd logo
1 de 22
Descargar para leer sin conexión
What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac




                      Software Version Control using
                               Subversion

                                                Guy K. Kloss

                                              Computer Science
                                           Massey University, Albany


                                   Softare Engineering 158.329
                                     Auckland, 11 May 2009


Guy K. Kloss | Software Version Control using Subversion                                                 1/22
What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac

   Outline


      1 What, Why and How?

      2 Subversion Commands

      3 Demo: Command-line Tools

      4 GUI Tools

      5 Project Layout

      6 Demo: Trac

Guy K. Kloss | Software Version Control using Subversion                                                 2/22
What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac

   Outline


      1 What, Why and How?

      2 Subversion Commands

      3 Demo: Command-line Tools

      4 GUI Tools

      5 Project Layout

      6 Demo: Trac

Guy K. Kloss | Software Version Control using Subversion                                                 3/22
What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac

   What?




              Subversion maintains snapshots of the code repository.
              Allows many people to concurrently work on a codebase.
              Subversion is source control with a central repository.
              Usually integrates with a frontend: Trac




Guy K. Kloss | Software Version Control using Subversion                                                 4/22
What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac

   Why?




              Continuous incremental backup.
              Ability to recall older code.
              Distributed development.
              Various versions of a single project.
              Tracking bugs, timeline, goals and releases.




Guy K. Kloss | Software Version Control using Subversion                                                 5/22
What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac

   Central Repository




Guy K. Kloss | Software Version Control using Subversion                                                 6/22
What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac

   How?



              Developers checkout code from the repository
              to a local working-copy.
              After making edits, they commit changes.
              At any point, they can revert
              to an older version of the codebase.
              They update their local working copy frequently
              to keep up with changes.




Guy K. Kloss | Software Version Control using Subversion                                                 7/22
What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac

   Work with Subversion




Guy K. Kloss | Software Version Control using Subversion                                                 8/22
What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac

   How does Subversion work?



              A system to track changes in files.
              The code is initially imported into the repository.
              Then a special “subversion-aware” directory
              is checked-out.
              Developers commit and update.
              Subversion tracks the changesets and the commit-log.




Guy K. Kloss | Software Version Control using Subversion                                                 9/22
What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac

   Outline


      1 What, Why and How?

      2 Subversion Commands

      3 Demo: Command-line Tools

      4 GUI Tools

      5 Project Layout

      6 Demo: Trac

Guy K. Kloss | Software Version Control using Subversion                                                 10/22
What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac

   Common Subversion Commands




              checkout: Obtain a new working copy.
              import: Import code into repository initially.
              commit: Update repository with changes.
              update: Update working-copy with changes.
              Other commands: revert, move, copy, merge.




Guy K. Kloss | Software Version Control using Subversion                                                 11/22
What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac

   Outline


      1 What, Why and How?

      2 Subversion Commands

      3 Demo: Command-line Tools

      4 GUI Tools

      5 Project Layout

      6 Demo: Trac

Guy K. Kloss | Software Version Control using Subversion                                                 12/22
What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac




     To be shown . . .
     For examples see slides 49–77 in the presentation
     “SVN – SubVersioN” here:
     http://www.slideshare.net/slidesharechaos/svn-subversion




Guy K. Kloss | Software Version Control using Subversion                                                 13/22
What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac

   Outline


      1 What, Why and How?

      2 Subversion Commands

      3 Demo: Command-line Tools

      4 GUI Tools

      5 Project Layout

      6 Demo: Trac

Guy K. Kloss | Software Version Control using Subversion                                                 14/22
What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac

   GUI Tools



              TortoiseSVN in
              Windows
              Right-click a directory:
              get a context-menu with
              everything in there.
              Useful Integration with
              diff and patch.
              Reasonably fast.



Guy K. Kloss | Software Version Control using Subversion                                                 15/22
What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac

   Outline


      1 What, Why and How?

      2 Subversion Commands

      3 Demo: Command-line Tools

      4 GUI Tools

      5 Project Layout

      6 Demo: Trac

Guy K. Kloss | Software Version Control using Subversion                                                 16/22
What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac

   Project Layout



              trunk/
              → All constant development happens here.
              branches/
              → Special purpose development here.
              tags/
              → Releases are “tagged” for archiving.




Guy K. Kloss | Software Version Control using Subversion                                                 17/22
What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac

   Outline


      1 What, Why and How?

      2 Subversion Commands

      3 Demo: Command-line Tools

      4 GUI Tools

      5 Project Layout

      6 Demo: Trac

Guy K. Kloss | Software Version Control using Subversion                                                 18/22
What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac

   Major features of Trac




              Web frontend to a Subversion repository.
              Shows the changesets and timeline.
              Has a bug tracker which integrates
              with the Subversion commit-log.
              Simple project management.




Guy K. Kloss | Software Version Control using Subversion                                                 19/22
What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac

   Some good Subversion practices



              Follow the branches, tags, trunk structure.
              All code should be in the repository!
              Update code at the start of every day.
              Only commit coherent changes.
              The central repository should always be consistent.
              No dependent stuff!
              Branch as less as possible.




Guy K. Kloss | Software Version Control using Subversion                                                 20/22
What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac




     Questions?


                                                           G.Kloss@massey.ac.nz


Guy K. Kloss | Software Version Control using Subversion                                                 21/22
What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac

   References



              Thanks to Vishnu Gopal’s presentation
              “Basic SCM with Subversion & Trac”
              Subversion Quick Reference Card
              http://www.digilife.be/quickreferences/quickrefs.htm

              Subversion Cheat Sheet
              http://ariejan.net/svncheatsheet/

              TortoiseSVN client for Windows
              http://tortoisesvn.tigris.org/




Guy K. Kloss | Software Version Control using Subversion                                                 22/22

Más contenido relacionado

La actualidad más candente

Part 4 - Managing your svn repository using jas forge
Part 4  - Managing your svn repository using jas forgePart 4  - Managing your svn repository using jas forge
Part 4 - Managing your svn repository using jas forgeJasmine Conseil
 
Subversion Best Practices
Subversion Best PracticesSubversion Best Practices
Subversion Best PracticesMatt Wood
 
Subversion workshop
Subversion workshopSubversion workshop
Subversion workshopTrafeX
 
SVN Usage & Best Practices
SVN Usage & Best PracticesSVN Usage & Best Practices
SVN Usage & Best PracticesAshraf Fouad
 
Version Control With Subversion
Version Control With SubversionVersion Control With Subversion
Version Control With SubversionSamnang Chhun
 
Version Control and Continuous Integration
Version Control and Continuous IntegrationVersion Control and Continuous Integration
Version Control and Continuous IntegrationGeff Henderson Chang
 
CI/CD Pipeline as a Code using Jenkins 2
CI/CD Pipeline as a Code using Jenkins 2CI/CD Pipeline as a Code using Jenkins 2
CI/CD Pipeline as a Code using Jenkins 2Mayank Patel
 
JavaOne 2016 - Pipeline as code
JavaOne 2016 - Pipeline as codeJavaOne 2016 - Pipeline as code
JavaOne 2016 - Pipeline as codeBert Jan Schrijver
 
Subversion client
Subversion clientSubversion client
Subversion clientrchakra
 
A brief introduction to version control systems
A brief introduction to version control systemsA brief introduction to version control systems
A brief introduction to version control systemsTim Staley
 
Introduction to Version Control
Introduction to Version ControlIntroduction to Version Control
Introduction to Version ControlJeremy Coates
 
Introduction to Version Control and Configuration Management
Introduction to Version Control and Configuration ManagementIntroduction to Version Control and Configuration Management
Introduction to Version Control and Configuration ManagementPhilip Johnson
 
Totalsvn Usage And Administration By Gopi
Totalsvn Usage And Administration By GopiTotalsvn Usage And Administration By Gopi
Totalsvn Usage And Administration By Gopigopinathkarangula
 
Introduction to Subversion and Google Project Hosting
Introduction to Subversion and Google Project HostingIntroduction to Subversion and Google Project Hosting
Introduction to Subversion and Google Project HostingPhilip Johnson
 

La actualidad más candente (20)

Part 4 - Managing your svn repository using jas forge
Part 4  - Managing your svn repository using jas forgePart 4  - Managing your svn repository using jas forge
Part 4 - Managing your svn repository using jas forge
 
Subversion Best Practices
Subversion Best PracticesSubversion Best Practices
Subversion Best Practices
 
SVN Basics
SVN BasicsSVN Basics
SVN Basics
 
SVN Best Practices
SVN Best PracticesSVN Best Practices
SVN Best Practices
 
Subversion workshop
Subversion workshopSubversion workshop
Subversion workshop
 
SVN Usage & Best Practices
SVN Usage & Best PracticesSVN Usage & Best Practices
SVN Usage & Best Practices
 
Version Control With Subversion
Version Control With SubversionVersion Control With Subversion
Version Control With Subversion
 
Subversion User Guide
Subversion User GuideSubversion User Guide
Subversion User Guide
 
Using svn
Using svnUsing svn
Using svn
 
Svn tutorial
Svn tutorialSvn tutorial
Svn tutorial
 
svn
svnsvn
svn
 
Version Control and Continuous Integration
Version Control and Continuous IntegrationVersion Control and Continuous Integration
Version Control and Continuous Integration
 
CI/CD Pipeline as a Code using Jenkins 2
CI/CD Pipeline as a Code using Jenkins 2CI/CD Pipeline as a Code using Jenkins 2
CI/CD Pipeline as a Code using Jenkins 2
 
JavaOne 2016 - Pipeline as code
JavaOne 2016 - Pipeline as codeJavaOne 2016 - Pipeline as code
JavaOne 2016 - Pipeline as code
 
Subversion client
Subversion clientSubversion client
Subversion client
 
A brief introduction to version control systems
A brief introduction to version control systemsA brief introduction to version control systems
A brief introduction to version control systems
 
Introduction to Version Control
Introduction to Version ControlIntroduction to Version Control
Introduction to Version Control
 
Introduction to Version Control and Configuration Management
Introduction to Version Control and Configuration ManagementIntroduction to Version Control and Configuration Management
Introduction to Version Control and Configuration Management
 
Totalsvn Usage And Administration By Gopi
Totalsvn Usage And Administration By GopiTotalsvn Usage And Administration By Gopi
Totalsvn Usage And Administration By Gopi
 
Introduction to Subversion and Google Project Hosting
Introduction to Subversion and Google Project HostingIntroduction to Subversion and Google Project Hosting
Introduction to Subversion and Google Project Hosting
 

Destacado

Quality Metrics
Quality Metrics Quality Metrics
Quality Metrics Haroon Abbu
 
Software (requirement) analysis using uml
Software (requirement) analysis using umlSoftware (requirement) analysis using uml
Software (requirement) analysis using umlDhiraj Shetty
 
Requirement Analysis
Requirement AnalysisRequirement Analysis
Requirement AnalysisWebx
 
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelCHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelmohamed khalaf alla mohamedain
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assuranceAman Adhikari
 
requirements analysis and design
requirements analysis and designrequirements analysis and design
requirements analysis and designPreeti Mishra
 
Requirements analysis
Requirements analysisRequirements analysis
Requirements analysisasimnawaz54
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Managementguy_davis
 
Dfd examples
Dfd examplesDfd examples
Dfd examplesMohit
 
Software quality assurance lecture 1
Software quality assurance lecture 1Software quality assurance lecture 1
Software quality assurance lecture 1Abdul Basit
 
Introduction To Software Quality Assurance
Introduction To Software Quality AssuranceIntroduction To Software Quality Assurance
Introduction To Software Quality Assuranceruth_reategui
 

Destacado (11)

Quality Metrics
Quality Metrics Quality Metrics
Quality Metrics
 
Software (requirement) analysis using uml
Software (requirement) analysis using umlSoftware (requirement) analysis using uml
Software (requirement) analysis using uml
 
Requirement Analysis
Requirement AnalysisRequirement Analysis
Requirement Analysis
 
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddelCHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
CHAPTER 6 REQUIREMENTS MODELING: SCENARIO based Model , Class based moddel
 
Software quality assurance
Software quality assuranceSoftware quality assurance
Software quality assurance
 
requirements analysis and design
requirements analysis and designrequirements analysis and design
requirements analysis and design
 
Requirements analysis
Requirements analysisRequirements analysis
Requirements analysis
 
Software Configuration Management
Software Configuration ManagementSoftware Configuration Management
Software Configuration Management
 
Dfd examples
Dfd examplesDfd examples
Dfd examples
 
Software quality assurance lecture 1
Software quality assurance lecture 1Software quality assurance lecture 1
Software quality assurance lecture 1
 
Introduction To Software Quality Assurance
Introduction To Software Quality AssuranceIntroduction To Software Quality Assurance
Introduction To Software Quality Assurance
 

Similar a Version Control with Subversion

SDLC & DevOps Transformation with Agile
SDLC & DevOps Transformation with AgileSDLC & DevOps Transformation with Agile
SDLC & DevOps Transformation with AgileAbdel Moneim Emad
 
Jbossworld Presentation
Jbossworld PresentationJbossworld Presentation
Jbossworld PresentationDan Hinojosa
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0Jasmine Conseil
 
When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?Niklas Heidloff
 
超級全能危樓改造王 - 增建、改建、打掉重建你的軟體架構?
超級全能危樓改造王 - 增建、改建、打掉重建你的軟體架構?超級全能危樓改造王 - 增建、改建、打掉重建你的軟體架構?
超級全能危樓改造王 - 增建、改建、打掉重建你的軟體架構?Pin-Ying Tu
 
DevOps interview questions and answers
DevOps interview questions and answersDevOps interview questions and answers
DevOps interview questions and answersHopeTutors1
 
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopMichael Palotas
 
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
 
Agile a to z chapter 4 feedback loop
Agile a to z chapter 4 feedback loopAgile a to z chapter 4 feedback loop
Agile a to z chapter 4 feedback loopWajih Aslam
 
Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates Liran Levy
 
Continuous Integration and development environment approach
Continuous Integration and development environment approachContinuous Integration and development environment approach
Continuous Integration and development environment approachAleksandr Tsertkov
 
Breaking the monolith to microservice with Docker and Kubernetes (k8s)
Breaking the monolith to microservice with Docker and Kubernetes (k8s)Breaking the monolith to microservice with Docker and Kubernetes (k8s)
Breaking the monolith to microservice with Docker and Kubernetes (k8s)Tamir Dresher
 
Agile & ALM tools
Agile & ALM toolsAgile & ALM tools
Agile & ALM toolsLarry Cai
 
Software Engineering Culture - Improve Code Quality
Software Engineering Culture - Improve Code QualitySoftware Engineering Culture - Improve Code Quality
Software Engineering Culture - Improve Code QualityDmytro Patserkovskyi
 

Similar a Version Control with Subversion (20)

Jenkins pipeline as code
Jenkins pipeline as codeJenkins pipeline as code
Jenkins pipeline as code
 
SDLC & DevOps Transformation with Agile
SDLC & DevOps Transformation with AgileSDLC & DevOps Transformation with Agile
SDLC & DevOps Transformation with Agile
 
Build Time Hacking
Build Time HackingBuild Time Hacking
Build Time Hacking
 
2
22
2
 
2
22
2
 
Jbossworld Presentation
Jbossworld PresentationJbossworld Presentation
Jbossworld Presentation
 
Part 2 improving your software development v1.0
Part 2   improving your software development v1.0Part 2   improving your software development v1.0
Part 2 improving your software development v1.0
 
When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?When to use Serverless? When to use Kubernetes?
When to use Serverless? When to use Kubernetes?
 
超級全能危樓改造王 - 增建、改建、打掉重建你的軟體架構?
超級全能危樓改造王 - 增建、改建、打掉重建你的軟體架構?超級全能危樓改造王 - 增建、改建、打掉重建你的軟體架構?
超級全能危樓改造王 - 增建、改建、打掉重建你的軟體架構?
 
DevOps interview questions and answers
DevOps interview questions and answersDevOps interview questions and answers
DevOps interview questions and answers
 
Agile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery WorkshopAgile Bodensee - Testautomation & Continuous Delivery Workshop
Agile Bodensee - Testautomation & Continuous Delivery Workshop
 
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
 
Agile a to z chapter 4 feedback loop
Agile a to z chapter 4 feedback loopAgile a to z chapter 4 feedback loop
Agile a to z chapter 4 feedback loop
 
Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates Intro to DevOps 4 undergraduates
Intro to DevOps 4 undergraduates
 
Continuous Integration and development environment approach
Continuous Integration and development environment approachContinuous Integration and development environment approach
Continuous Integration and development environment approach
 
Breaking the monolith to microservice with Docker and Kubernetes (k8s)
Breaking the monolith to microservice with Docker and Kubernetes (k8s)Breaking the monolith to microservice with Docker and Kubernetes (k8s)
Breaking the monolith to microservice with Docker and Kubernetes (k8s)
 
Agile & ALM tools
Agile & ALM toolsAgile & ALM tools
Agile & ALM tools
 
Software Engineering Culture - Improve Code Quality
Software Engineering Culture - Improve Code QualitySoftware Engineering Culture - Improve Code Quality
Software Engineering Culture - Improve Code Quality
 
10 gui 14
10 gui 1410 gui 14
10 gui 14
 
gopaddle-meetup
gopaddle-meetupgopaddle-meetup
gopaddle-meetup
 

Más de Guy K. Kloss

Kauri ID - A Self-Sovereign, Blockchain-based Identity System
Kauri ID - A Self-Sovereign, Blockchain-based Identity SystemKauri ID - A Self-Sovereign, Blockchain-based Identity System
Kauri ID - A Self-Sovereign, Blockchain-based Identity SystemGuy K. Kloss
 
Qrious about Insights -- Big Data in the Real World
Qrious about Insights -- Big Data in the Real WorldQrious about Insights -- Big Data in the Real World
Qrious about Insights -- Big Data in the Real WorldGuy K. Kloss
 
WTF is Blockchain???
WTF is Blockchain???WTF is Blockchain???
WTF is Blockchain???Guy K. Kloss
 
Building a (Really) Secure Cloud Product
Building a (Really) Secure Cloud ProductBuilding a (Really) Secure Cloud Product
Building a (Really) Secure Cloud ProductGuy K. Kloss
 
Representational State Transfer (REST) and HATEOAS
Representational State Transfer (REST) and HATEOASRepresentational State Transfer (REST) and HATEOAS
Representational State Transfer (REST) and HATEOASGuy K. Kloss
 
Introduction to LaTeX (For Word users)
 Introduction to LaTeX (For Word users) Introduction to LaTeX (For Word users)
Introduction to LaTeX (For Word users)Guy K. Kloss
 
MataNui - Building a Grid Data Infrastructure that "doesn't suck!"
MataNui - Building a Grid Data Infrastructure that "doesn't suck!"MataNui - Building a Grid Data Infrastructure that "doesn't suck!"
MataNui - Building a Grid Data Infrastructure that "doesn't suck!"Guy K. Kloss
 
Operations Research and Optimization in Python using PuLP
Operations Research and Optimization in Python using PuLPOperations Research and Optimization in Python using PuLP
Operations Research and Optimization in Python using PuLPGuy K. Kloss
 
Python Data Plotting and Visualisation Extravaganza
Python Data Plotting and Visualisation ExtravaganzaPython Data Plotting and Visualisation Extravaganza
Python Data Plotting and Visualisation ExtravaganzaGuy K. Kloss
 
Lecture "Open Source and Open Content"
Lecture "Open Source and Open Content"Lecture "Open Source and Open Content"
Lecture "Open Source and Open Content"Guy K. Kloss
 
Beating the (sh** out of the) GIL - Multithreading vs. Multiprocessing
Beating the (sh** out of the) GIL - Multithreading vs. MultiprocessingBeating the (sh** out of the) GIL - Multithreading vs. Multiprocessing
Beating the (sh** out of the) GIL - Multithreading vs. MultiprocessingGuy K. Kloss
 
Thinking Hybrid - Python/C++ Integration
Thinking Hybrid - Python/C++ IntegrationThinking Hybrid - Python/C++ Integration
Thinking Hybrid - Python/C++ IntegrationGuy K. Kloss
 
Thinking Hybrid - Python/C++ Integration
Thinking Hybrid - Python/C++ IntegrationThinking Hybrid - Python/C++ Integration
Thinking Hybrid - Python/C++ IntegrationGuy K. Kloss
 
Gaining Colour Stability in Live Image Capturing
Gaining Colour Stability in Live Image CapturingGaining Colour Stability in Live Image Capturing
Gaining Colour Stability in Live Image CapturingGuy K. Kloss
 
LaTeX Introduction for Word Users
LaTeX Introduction for Word UsersLaTeX Introduction for Word Users
LaTeX Introduction for Word UsersGuy K. Kloss
 
Thinking Hybrid - Python/C++ Integration
Thinking Hybrid - Python/C++ IntegrationThinking Hybrid - Python/C++ Integration
Thinking Hybrid - Python/C++ IntegrationGuy K. Kloss
 

Más de Guy K. Kloss (16)

Kauri ID - A Self-Sovereign, Blockchain-based Identity System
Kauri ID - A Self-Sovereign, Blockchain-based Identity SystemKauri ID - A Self-Sovereign, Blockchain-based Identity System
Kauri ID - A Self-Sovereign, Blockchain-based Identity System
 
Qrious about Insights -- Big Data in the Real World
Qrious about Insights -- Big Data in the Real WorldQrious about Insights -- Big Data in the Real World
Qrious about Insights -- Big Data in the Real World
 
WTF is Blockchain???
WTF is Blockchain???WTF is Blockchain???
WTF is Blockchain???
 
Building a (Really) Secure Cloud Product
Building a (Really) Secure Cloud ProductBuilding a (Really) Secure Cloud Product
Building a (Really) Secure Cloud Product
 
Representational State Transfer (REST) and HATEOAS
Representational State Transfer (REST) and HATEOASRepresentational State Transfer (REST) and HATEOAS
Representational State Transfer (REST) and HATEOAS
 
Introduction to LaTeX (For Word users)
 Introduction to LaTeX (For Word users) Introduction to LaTeX (For Word users)
Introduction to LaTeX (For Word users)
 
MataNui - Building a Grid Data Infrastructure that "doesn't suck!"
MataNui - Building a Grid Data Infrastructure that "doesn't suck!"MataNui - Building a Grid Data Infrastructure that "doesn't suck!"
MataNui - Building a Grid Data Infrastructure that "doesn't suck!"
 
Operations Research and Optimization in Python using PuLP
Operations Research and Optimization in Python using PuLPOperations Research and Optimization in Python using PuLP
Operations Research and Optimization in Python using PuLP
 
Python Data Plotting and Visualisation Extravaganza
Python Data Plotting and Visualisation ExtravaganzaPython Data Plotting and Visualisation Extravaganza
Python Data Plotting and Visualisation Extravaganza
 
Lecture "Open Source and Open Content"
Lecture "Open Source and Open Content"Lecture "Open Source and Open Content"
Lecture "Open Source and Open Content"
 
Beating the (sh** out of the) GIL - Multithreading vs. Multiprocessing
Beating the (sh** out of the) GIL - Multithreading vs. MultiprocessingBeating the (sh** out of the) GIL - Multithreading vs. Multiprocessing
Beating the (sh** out of the) GIL - Multithreading vs. Multiprocessing
 
Thinking Hybrid - Python/C++ Integration
Thinking Hybrid - Python/C++ IntegrationThinking Hybrid - Python/C++ Integration
Thinking Hybrid - Python/C++ Integration
 
Thinking Hybrid - Python/C++ Integration
Thinking Hybrid - Python/C++ IntegrationThinking Hybrid - Python/C++ Integration
Thinking Hybrid - Python/C++ Integration
 
Gaining Colour Stability in Live Image Capturing
Gaining Colour Stability in Live Image CapturingGaining Colour Stability in Live Image Capturing
Gaining Colour Stability in Live Image Capturing
 
LaTeX Introduction for Word Users
LaTeX Introduction for Word UsersLaTeX Introduction for Word Users
LaTeX Introduction for Word Users
 
Thinking Hybrid - Python/C++ Integration
Thinking Hybrid - Python/C++ IntegrationThinking Hybrid - Python/C++ Integration
Thinking Hybrid - Python/C++ Integration
 

Último

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...HostedbyConfluent
 
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
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Paola De la Torre
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Igalia
 
🐬 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
 
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
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitecturePixlogix Infotech
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Allon Mureinik
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024Scott Keck-Warren
 
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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationMichael W. Hawkins
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 3652toLead Limited
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesSinan KOZAK
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationRidwan Fadjar
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Miguel Araújo
 
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
 
[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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)Gabriella Davis
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking MenDelhi Call girls
 

Último (20)

Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
Transforming Data Streams with Kafka Connect: An Introduction to Single Messa...
 
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...
 
Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101Salesforce Community Group Quito, Salesforce 101
Salesforce Community Group Quito, Salesforce 101
 
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
 
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
Raspberry Pi 5: Challenges and Solutions in Bringing up an OpenGL/Vulkan Driv...
 
🐬 The future of MySQL is Postgres 🐘
🐬  The future of MySQL is Postgres   🐘🐬  The future of MySQL is Postgres   🐘
🐬 The future of MySQL is Postgres 🐘
 
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
 
Understanding the Laravel MVC Architecture
Understanding the Laravel MVC ArchitectureUnderstanding the Laravel MVC Architecture
Understanding the Laravel MVC Architecture
 
Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)Injustice - Developers Among Us (SciFiDevCon 2024)
Injustice - Developers Among Us (SciFiDevCon 2024)
 
SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 2024SQL Database Design For Developers at php[tek] 2024
SQL Database Design For Developers at php[tek] 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
 
GenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day PresentationGenCyber Cyber Security Day Presentation
GenCyber Cyber Security Day Presentation
 
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
Tech-Forward - Achieving Business Readiness For Copilot in Microsoft 365
 
Unblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen FramesUnblocking The Main Thread Solving ANRs and Frozen Frames
Unblocking The Main Thread Solving ANRs and Frozen Frames
 
My Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 PresentationMy Hashitalk Indonesia April 2024 Presentation
My Hashitalk Indonesia April 2024 Presentation
 
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
Mastering MySQL Database Architecture: Deep Dive into MySQL Shell and MySQL R...
 
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
 
[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
 
A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)A Domino Admins Adventures (Engage 2024)
A Domino Admins Adventures (Engage 2024)
 
08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men08448380779 Call Girls In Friends Colony Women Seeking Men
08448380779 Call Girls In Friends Colony Women Seeking Men
 

Version Control with Subversion

  • 1. What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac Software Version Control using Subversion Guy K. Kloss Computer Science Massey University, Albany Softare Engineering 158.329 Auckland, 11 May 2009 Guy K. Kloss | Software Version Control using Subversion 1/22
  • 2. What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac Outline 1 What, Why and How? 2 Subversion Commands 3 Demo: Command-line Tools 4 GUI Tools 5 Project Layout 6 Demo: Trac Guy K. Kloss | Software Version Control using Subversion 2/22
  • 3. What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac Outline 1 What, Why and How? 2 Subversion Commands 3 Demo: Command-line Tools 4 GUI Tools 5 Project Layout 6 Demo: Trac Guy K. Kloss | Software Version Control using Subversion 3/22
  • 4. What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac What? Subversion maintains snapshots of the code repository. Allows many people to concurrently work on a codebase. Subversion is source control with a central repository. Usually integrates with a frontend: Trac Guy K. Kloss | Software Version Control using Subversion 4/22
  • 5. What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac Why? Continuous incremental backup. Ability to recall older code. Distributed development. Various versions of a single project. Tracking bugs, timeline, goals and releases. Guy K. Kloss | Software Version Control using Subversion 5/22
  • 6. What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac Central Repository Guy K. Kloss | Software Version Control using Subversion 6/22
  • 7. What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac How? Developers checkout code from the repository to a local working-copy. After making edits, they commit changes. At any point, they can revert to an older version of the codebase. They update their local working copy frequently to keep up with changes. Guy K. Kloss | Software Version Control using Subversion 7/22
  • 8. What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac Work with Subversion Guy K. Kloss | Software Version Control using Subversion 8/22
  • 9. What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac How does Subversion work? A system to track changes in files. The code is initially imported into the repository. Then a special “subversion-aware” directory is checked-out. Developers commit and update. Subversion tracks the changesets and the commit-log. Guy K. Kloss | Software Version Control using Subversion 9/22
  • 10. What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac Outline 1 What, Why and How? 2 Subversion Commands 3 Demo: Command-line Tools 4 GUI Tools 5 Project Layout 6 Demo: Trac Guy K. Kloss | Software Version Control using Subversion 10/22
  • 11. What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac Common Subversion Commands checkout: Obtain a new working copy. import: Import code into repository initially. commit: Update repository with changes. update: Update working-copy with changes. Other commands: revert, move, copy, merge. Guy K. Kloss | Software Version Control using Subversion 11/22
  • 12. What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac Outline 1 What, Why and How? 2 Subversion Commands 3 Demo: Command-line Tools 4 GUI Tools 5 Project Layout 6 Demo: Trac Guy K. Kloss | Software Version Control using Subversion 12/22
  • 13. What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac To be shown . . . For examples see slides 49–77 in the presentation “SVN – SubVersioN” here: http://www.slideshare.net/slidesharechaos/svn-subversion Guy K. Kloss | Software Version Control using Subversion 13/22
  • 14. What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac Outline 1 What, Why and How? 2 Subversion Commands 3 Demo: Command-line Tools 4 GUI Tools 5 Project Layout 6 Demo: Trac Guy K. Kloss | Software Version Control using Subversion 14/22
  • 15. What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac GUI Tools TortoiseSVN in Windows Right-click a directory: get a context-menu with everything in there. Useful Integration with diff and patch. Reasonably fast. Guy K. Kloss | Software Version Control using Subversion 15/22
  • 16. What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac Outline 1 What, Why and How? 2 Subversion Commands 3 Demo: Command-line Tools 4 GUI Tools 5 Project Layout 6 Demo: Trac Guy K. Kloss | Software Version Control using Subversion 16/22
  • 17. What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac Project Layout trunk/ → All constant development happens here. branches/ → Special purpose development here. tags/ → Releases are “tagged” for archiving. Guy K. Kloss | Software Version Control using Subversion 17/22
  • 18. What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac Outline 1 What, Why and How? 2 Subversion Commands 3 Demo: Command-line Tools 4 GUI Tools 5 Project Layout 6 Demo: Trac Guy K. Kloss | Software Version Control using Subversion 18/22
  • 19. What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac Major features of Trac Web frontend to a Subversion repository. Shows the changesets and timeline. Has a bug tracker which integrates with the Subversion commit-log. Simple project management. Guy K. Kloss | Software Version Control using Subversion 19/22
  • 20. What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac Some good Subversion practices Follow the branches, tags, trunk structure. All code should be in the repository! Update code at the start of every day. Only commit coherent changes. The central repository should always be consistent. No dependent stuff! Branch as less as possible. Guy K. Kloss | Software Version Control using Subversion 20/22
  • 21. What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac Questions? G.Kloss@massey.ac.nz Guy K. Kloss | Software Version Control using Subversion 21/22
  • 22. What, Why and How? Subversion Commands Demo: Command-line Tools GUI Tools Project Layout Demo: Trac References Thanks to Vishnu Gopal’s presentation “Basic SCM with Subversion & Trac” Subversion Quick Reference Card http://www.digilife.be/quickreferences/quickrefs.htm Subversion Cheat Sheet http://ariejan.net/svncheatsheet/ TortoiseSVN client for Windows http://tortoisesvn.tigris.org/ Guy K. Kloss | Software Version Control using Subversion 22/22