SlideShare a Scribd company logo
Subversion and TortoiseSVN – a Basic Primer Blake Medulan 2008
What is it? Subversion (abbreviated SVN) is an open source version control system that facilitates source code development by multiple software developers. ,[object Object]
SSH
Windows Shell,[object Object]
Vocabulary SVN : abbreviation for subversion Head Revision: The latest (or “youngest”) revision in the repository. Conflict: Two competing versions of the same file Working Folder:  Folder (local or server) that you check out the code to in order to edit Commit : Publish new files to repository Branch: a line of development that exists independently of another line, yet still shares a common history if you look far enough back in time.
Vocabulary Base : The revision number of an item in a working copy. If the item has been locally modified, this refers to the way the item appears without those local modifications. Prev: The revision immediately before the last revision in which an item changed. Technically, this boils down to COMMITTED#1. WebDAV: Distributed Authoring and Versioning.” RFC 2518
TortoiseSVN TortoiseSVN is a Windows shell extension that allows you to access SVN repositories within Windows Explorer.  Basically, any folder on your hard drive (or remote server) can be turned into an SVN folder and used to store a revision of an SVN repository
TortoiseSVN ,[object Object],[object Object]
The “Checkout” operation STEPS 1.   Create a working folder locally 2.   Right click on folder select  SVN Checkout 3.   Enter repository location (http://10.1.1.250/project_xxx) (http://subversion.webfeat.mci/project_xxx) 4.   Select working folder
The “Checkout” operation STEPS 5.   Enter your username and password 6.   Checkout process begins 7.   Working folder now contains latest version The green check means that the folder contains SVN files and is version controlled.
The “Commit” operation STEPS 1. Right-clicking on the file, sub-folder, or repository folder (whichever will cover the entire set of files/folders you have changed), and select SVN Commit....  ,[object Object],Only use accurate, descriptive comments so others can understand how the new version of code you are creating differs from the previous version!
Rename Files and Folders 1.  Checkout the file or folder to your machine 2.  Right-click on the file or folder, and select the menu option SVN Rename 3.  Type in the new name, and the icon for the file or folder will change to; 4.  Run a Commit and the repository will be updated with the new name
Delete Files and Folders 1.  Checkout the file or folder to your machine 2. Right-click on the file, and select the Delete... option from the TortoiseSVN menu:
Adding Files and Folders 1.  Checkout the latest version 2. Move the new file(s) and folder(s) to the location you want them in the repository 3. Right-click on the file(s) and folder(s) you want to add to the repository, and select the SVN Add. 4. To make the change stick, run a Commit and make sure the check boxes are checked for adding the items you want to add
Updates 1. Update your local snapshot of the repository to the latest version available by running an Update Operation. 2. Right-click on a folder containing versioned files and folders in it, and select the SVN Update... menu option. NOTE: Only the files already checked out will be updated (or deleted, if they were deleted in the repository since you last updated) Only the files already on your hard drive will be touched, and they can only be deleted or overwritten with the latest version of the file.
Conflicts – the scenario In the following example, we will be committing a change to the repository. Note: please don't actually make a commit to the repository for this tutorial - just read along! (We don't want the iris4 repo to get messed up with a bunch of 'SVN practice' commits.)  If you have modified any of the files you have checked out, added new files to the folder (or a sub-folder) where you have versioned files, or if you have deleted versioned files, you will have to commit these changes to the SVN repository to try and make them stick. I say try here because it is possible that the commit operation will fail if your changes conflict with someone else's changes
Conflicts When you try to commit your file you get the following message You then run an Update operation, and you will see the following:
Conflicts After you click OK, the folder containing main.cpp will now have several new, non-versioned files in it: 3 1 4 2
Conflicts main.cpp.mine 	This is what main.cpp v31 looked like after you changed it (no conflict markers). main.cpp.r31 This is what version 31 of main.cpp looked like (the file you checkout and then modified). main.cpp.r32 This is what the current version of main.cpp looks like (on the server).  main.cpp During the Update operation, conflict markers were inserted into this file.
Conflicts You can now right-click on the file main.cpp, and under the TortoiseSVN option, select Edit Conflicts:
Conflicts You can now right-click on the file main.cpp, and under the TortoiseSVN option, select Edit Conflicts:
Branching The Never-Branch system (Often used by nascent projects that don't yet have runnable code.) Users commit their day-to-day work on /trunk. Occasionally /trunk "breaks" (doesn't compile, or fails functional tests) when a user begins to commit a series of complicated changes. Pros: Very easy policy to follow. New developers have low barrier to entry. Nobody needs to learn how to branch or merge. Cons: Chaotic development, code could be unstable at any time.
Branching The Always-Branch system (Often used by projects that favor heavy management and supervision.) Each user creates/works on a private branch for every coding task. When coding is complete, someone (original coder, peer, or manager) reviews all private branch changes and merges them to /trunk. Pros: /trunk is guaranteed to be extremely stable at all times. Cons: Coders are artificially isolated from each other, possibly creating more merge conflicts than necessary. Requires users to do lots of extra merging. Occasionally /trunk "breaks" (doesn't compile, or fails functional tests) when a user begins to commit a series of complicated changes.
Branching The Branch-When-Needed system (This is the system used by the Subversion project.) Users commit their day-to-day work on /trunk. Rule #1: trunk must compile and pass regression tests at all times.  Rule #2: a single commit (changeset) must not be so large so as to discourage peer-review. Rule #3: if rules #1 and #2 come into conflict (i.e. impossible to make a series of small commits without disrupting the trunk), then the user should create a branch and commit a series of smaller changesets Pros: /trunk is guaranteed to be stable at all times. The hassle of branching/merging is somewhat rare. Cons: Adds a bit of burden to users' daily work: they must compile and test before every commit.
Overview

More Related Content

What's hot

Version Control With Subversion
Version Control With SubversionVersion Control With Subversion
Version Control With SubversionSamnang Chhun
 
SVN Usage & Best Practices
SVN Usage & Best PracticesSVN Usage & Best Practices
SVN Usage & Best PracticesAshraf Fouad
 
Subversion User Guide
Subversion User GuideSubversion User Guide
Subversion User Guide
Muthuselvam RS
 
SVN Tool Information : Best Practices
SVN Tool Information  : Best PracticesSVN Tool Information  : Best Practices
SVN Tool Information : Best Practices
Maidul Islam
 
FlashInTO SVN Presentation
FlashInTO SVN PresentationFlashInTO SVN Presentation
FlashInTO SVN Presentation
Matthew Fabb
 
Practical SVN for PHP Developers
Practical SVN for PHP DevelopersPractical SVN for PHP Developers
Practical SVN for PHP DevelopersLorna Mitchell
 
Subversion Overview
Subversion OverviewSubversion Overview
Subversion Overviewpolarion
 
Svn Basic Tutorial
Svn Basic TutorialSvn Basic Tutorial
Svn Basic Tutorial
Marco Pivetta
 
Using svn
Using svnUsing svn
Using svn
Shiva Somvanshi
 
Introduction to Version Control
Introduction to Version ControlIntroduction to Version Control
Introduction to Version Control
Jeremy Coates
 
Subversion workshop
Subversion workshopSubversion workshop
Subversion workshop
TrafeX
 
Version control system
Version control systemVersion control system
Version control system
Aryman Gautam
 
Subversion
SubversionSubversion
Subversion
Vaibhav Sakhalkar
 
Version control
Version controlVersion control
Version control
Shahriar Iqbal Chowdhury
 
Svn tutorial
Svn tutorialSvn tutorial
Svn tutorial
kalyansiri
 
Version Control and Continuous Integration
Version Control and Continuous IntegrationVersion Control and Continuous Integration
Version Control and Continuous Integration
Geff Henderson Chang
 
Version Control with Subversion
Version Control with SubversionVersion Control with Subversion
Version Control with Subversion
Guy K. Kloss
 
Source Code management System
Source Code management SystemSource Code management System
Source Code management System
Karthikeyan Annamalai
 

What's hot (20)

Version Control With Subversion
Version Control With SubversionVersion Control With Subversion
Version Control With Subversion
 
SVN Usage & Best Practices
SVN Usage & Best PracticesSVN Usage & Best Practices
SVN Usage & Best Practices
 
Subversion User Guide
Subversion User GuideSubversion User Guide
Subversion User Guide
 
SVN Tool Information : Best Practices
SVN Tool Information  : Best PracticesSVN Tool Information  : Best Practices
SVN Tool Information : Best Practices
 
FlashInTO SVN Presentation
FlashInTO SVN PresentationFlashInTO SVN Presentation
FlashInTO SVN Presentation
 
Practical SVN for PHP Developers
Practical SVN for PHP DevelopersPractical SVN for PHP Developers
Practical SVN for PHP Developers
 
Subversion Overview
Subversion OverviewSubversion Overview
Subversion Overview
 
Svn Basic Tutorial
Svn Basic TutorialSvn Basic Tutorial
Svn Basic Tutorial
 
Using svn
Using svnUsing svn
Using svn
 
Introduction to Version Control
Introduction to Version ControlIntroduction to Version Control
Introduction to Version Control
 
Subversion workshop
Subversion workshopSubversion workshop
Subversion workshop
 
Version control system
Version control systemVersion control system
Version control system
 
Subversion
SubversionSubversion
Subversion
 
Version control
Version controlVersion control
Version control
 
Svn tutorial
Svn tutorialSvn tutorial
Svn tutorial
 
Version control
Version controlVersion control
Version control
 
Version Control and Continuous Integration
Version Control and Continuous IntegrationVersion Control and Continuous Integration
Version Control and Continuous Integration
 
Version Control with Subversion
Version Control with SubversionVersion Control with Subversion
Version Control with Subversion
 
Source Code management System
Source Code management SystemSource Code management System
Source Code management System
 
SVN Best Practices
SVN Best PracticesSVN Best Practices
SVN Best Practices
 

Viewers also liked

Kosanostra presentacion
Kosanostra presentacionKosanostra presentacion
Kosanostra presentacionkosanostra
 
Multi office 200 cards per year
Multi office 200 cards per yearMulti office 200 cards per year
Multi office 200 cards per year
Clear Line
 
Philosophy for Old Age
Philosophy for Old AgePhilosophy for Old Age
Philosophy for Old Age
Charles Joiner
 
ActionEmbedding
ActionEmbeddingActionEmbedding
ActionEmbedding
philcowans
 
Uwa annual report_2007
Uwa annual report_2007Uwa annual report_2007
Uwa annual report_2007Fondo Unido
 
Share pointmysites gs_e
Share pointmysites gs_eShare pointmysites gs_e
Share pointmysites gs_ethebdot1
 
Kosanostra Present
Kosanostra PresentKosanostra Present
Kosanostra Presentkosanostra
 
Philosophy for Old Age
Philosophy for Old AgePhilosophy for Old Age
Philosophy for Old Age
Charles Joiner
 
Careers in law_libraries
Careers in law_librariesCareers in law_libraries
Careers in law_librariesKaren Sawatzky
 
Apam 1
Apam 1Apam 1
Apam 1
veckita
 
Duct Style Air Heaters
Duct Style Air HeatersDuct Style Air Heaters
Duct Style Air Heaters
Stelter & Brinck
 

Viewers also liked (14)

Marketing
MarketingMarketing
Marketing
 
Kosanostra presentacion
Kosanostra presentacionKosanostra presentacion
Kosanostra presentacion
 
SR&ED
SR&EDSR&ED
SR&ED
 
Multi office 200 cards per year
Multi office 200 cards per yearMulti office 200 cards per year
Multi office 200 cards per year
 
Philosophy for Old Age
Philosophy for Old AgePhilosophy for Old Age
Philosophy for Old Age
 
ActionEmbedding
ActionEmbeddingActionEmbedding
ActionEmbedding
 
Bm 1
Bm 1Bm 1
Bm 1
 
Uwa annual report_2007
Uwa annual report_2007Uwa annual report_2007
Uwa annual report_2007
 
Share pointmysites gs_e
Share pointmysites gs_eShare pointmysites gs_e
Share pointmysites gs_e
 
Kosanostra Present
Kosanostra PresentKosanostra Present
Kosanostra Present
 
Philosophy for Old Age
Philosophy for Old AgePhilosophy for Old Age
Philosophy for Old Age
 
Careers in law_libraries
Careers in law_librariesCareers in law_libraries
Careers in law_libraries
 
Apam 1
Apam 1Apam 1
Apam 1
 
Duct Style Air Heaters
Duct Style Air HeatersDuct Style Air Heaters
Duct Style Air Heaters
 

Similar to Subversion

Subversion on .Unix
Subversion on .UnixSubversion on .Unix
Subversion on .Unix
Trong Dinh
 
Subversion on .Unix
Subversion on .UnixSubversion on .Unix
Subversion on .Unix
Trong Dinh
 
subversion.ppt
subversion.pptsubversion.ppt
subversion.ppt
TahaKhayyam
 
SVN Tutorial
SVN TutorialSVN Tutorial
SVN Tutorial
enggHeads
 
Source control
Source controlSource control
Source control
anushka perera
 
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
 
Digital Fabrication Studio 0.3 Information
Digital Fabrication Studio 0.3 InformationDigital Fabrication Studio 0.3 Information
Digital Fabrication Studio 0.3 InformationMassimo Menichinelli
 
Version Control Training - First Lego League
Version Control Training - First Lego LeagueVersion Control Training - First Lego League
Version Control Training - First Lego League
Jeffrey T. Pollock
 
SVN session from PiTechnologies
SVN session from PiTechnologies SVN session from PiTechnologies
SVN session from PiTechnologies PiTechnologies
 
Version control with Subversion
Version control with SubversionVersion control with Subversion
Version control with SubversionO. R. Kumaran
 
Git your life for fun & profit
Git your life for fun & profitGit your life for fun & profit
Git your life for fun & profit
Geeks Anonymes
 
02-version control(DevOps Series)
02-version control(DevOps Series)02-version control(DevOps Series)
02-version control(DevOps Series)
Mohammed Shaban
 
Git your life for fun & profit
Git your life for fun & profitGit your life for fun & profit
Git your life for fun & profit
Interface ULg, LIEGE science park
 
Slide set 7 (Source Code Management History Overview) - Copy.pptx
Slide set 7 (Source Code Management History  Overview) - Copy.pptxSlide set 7 (Source Code Management History  Overview) - Copy.pptx
Slide set 7 (Source Code Management History Overview) - Copy.pptx
UTKARSHBHARDWAJ71
 
Drupal Version Control & File System Basics
Drupal Version Control & File System BasicsDrupal Version Control & File System Basics
Drupal Version Control & File System Basics
Julia Kulla-Mader
 
Burlington, VT PHP Users Group Subversion Presentation
Burlington, VT PHP Users Group Subversion PresentationBurlington, VT PHP Users Group Subversion Presentation
Burlington, VT PHP Users Group Subversion Presentation
Bradley Holt
 
Subversion
SubversionSubversion
Subversion
Murtaza Abbas
 
Subversion
SubversionSubversion

Similar to Subversion (20)

Subversion on .Unix
Subversion on .UnixSubversion on .Unix
Subversion on .Unix
 
Subversion on .Unix
Subversion on .UnixSubversion on .Unix
Subversion on .Unix
 
subversion.ppt
subversion.pptsubversion.ppt
subversion.ppt
 
SVN Tutorial
SVN TutorialSVN Tutorial
SVN Tutorial
 
Subversion
SubversionSubversion
Subversion
 
Source control
Source controlSource control
Source 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
 
Digital Fabrication Studio 0.3 Information
Digital Fabrication Studio 0.3 InformationDigital Fabrication Studio 0.3 Information
Digital Fabrication Studio 0.3 Information
 
Version Control Training - First Lego League
Version Control Training - First Lego LeagueVersion Control Training - First Lego League
Version Control Training - First Lego League
 
SVN session from PiTechnologies
SVN session from PiTechnologies SVN session from PiTechnologies
SVN session from PiTechnologies
 
Version control with Subversion
Version control with SubversionVersion control with Subversion
Version control with Subversion
 
Git your life for fun & profit
Git your life for fun & profitGit your life for fun & profit
Git your life for fun & profit
 
02-version control(DevOps Series)
02-version control(DevOps Series)02-version control(DevOps Series)
02-version control(DevOps Series)
 
Git your life for fun & profit
Git your life for fun & profitGit your life for fun & profit
Git your life for fun & profit
 
svn
svnsvn
svn
 
Slide set 7 (Source Code Management History Overview) - Copy.pptx
Slide set 7 (Source Code Management History  Overview) - Copy.pptxSlide set 7 (Source Code Management History  Overview) - Copy.pptx
Slide set 7 (Source Code Management History Overview) - Copy.pptx
 
Drupal Version Control & File System Basics
Drupal Version Control & File System BasicsDrupal Version Control & File System Basics
Drupal Version Control & File System Basics
 
Burlington, VT PHP Users Group Subversion Presentation
Burlington, VT PHP Users Group Subversion PresentationBurlington, VT PHP Users Group Subversion Presentation
Burlington, VT PHP Users Group Subversion Presentation
 
Subversion
SubversionSubversion
Subversion
 
Subversion
SubversionSubversion
Subversion
 

Recently uploaded

Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Product School
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Ramesh Iyer
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
Dorra BARTAGUIZ
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
nkrafacyberclub
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
Thijs Feryn
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
ViralQR
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
91mobiles
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
sonjaschweigert1
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
UiPathCommunity
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
mikeeftimakis1
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
UiPathCommunity
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
KatiaHIMEUR1
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
OnBoard
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Thierry Lestable
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
RinaMondal9
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
Pierluigi Pugliese
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
DanBrown980551
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
DianaGray10
 

Recently uploaded (20)

Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
Unsubscribed: Combat Subscription Fatigue With a Membership Mentality by Head...
 
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdfFIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
FIDO Alliance Osaka Seminar: FIDO Security Aspects.pdf
 
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
Builder.ai Founder Sachin Dev Duggal's Strategic Approach to Create an Innova...
 
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdfFIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
FIDO Alliance Osaka Seminar: Passkeys at Amazon.pdf
 
Elevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object CalisthenicsElevating Tactical DDD Patterns Through Object Calisthenics
Elevating Tactical DDD Patterns Through Object Calisthenics
 
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptxSecstrike : Reverse Engineering & Pwnable tools for CTF.pptx
Secstrike : Reverse Engineering & Pwnable tools for CTF.pptx
 
Accelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish CachingAccelerate your Kubernetes clusters with Varnish Caching
Accelerate your Kubernetes clusters with Varnish Caching
 
Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.Welocme to ViralQR, your best QR code generator.
Welocme to ViralQR, your best QR code generator.
 
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdfSmart TV Buyer Insights Survey 2024 by 91mobiles.pdf
Smart TV Buyer Insights Survey 2024 by 91mobiles.pdf
 
A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...A tale of scale & speed: How the US Navy is enabling software delivery from l...
A tale of scale & speed: How the US Navy is enabling software delivery from l...
 
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
Dev Dives: Train smarter, not harder – active learning and UiPath LLMs for do...
 
Introduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - CybersecurityIntroduction to CHERI technology - Cybersecurity
Introduction to CHERI technology - Cybersecurity
 
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
Le nuove frontiere dell'AI nell'RPA con UiPath Autopilot™
 
Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !Securing your Kubernetes cluster_ a step-by-step guide to success !
Securing your Kubernetes cluster_ a step-by-step guide to success !
 
Leading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdfLeading Change strategies and insights for effective change management pdf 1.pdf
Leading Change strategies and insights for effective change management pdf 1.pdf
 
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
Empowering NextGen Mobility via Large Action Model Infrastructure (LAMI): pav...
 
Free Complete Python - A step towards Data Science
Free Complete Python - A step towards Data ScienceFree Complete Python - A step towards Data Science
Free Complete Python - A step towards Data Science
 
By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024By Design, not by Accident - Agile Venture Bolzano 2024
By Design, not by Accident - Agile Venture Bolzano 2024
 
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
LF Energy Webinar: Electrical Grid Modelling and Simulation Through PowSyBl -...
 
UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3UiPath Test Automation using UiPath Test Suite series, part 3
UiPath Test Automation using UiPath Test Suite series, part 3
 

Subversion

  • 1. Subversion and TortoiseSVN – a Basic Primer Blake Medulan 2008
  • 2.
  • 3. SSH
  • 4.
  • 5. Vocabulary SVN : abbreviation for subversion Head Revision: The latest (or “youngest”) revision in the repository. Conflict: Two competing versions of the same file Working Folder: Folder (local or server) that you check out the code to in order to edit Commit : Publish new files to repository Branch: a line of development that exists independently of another line, yet still shares a common history if you look far enough back in time.
  • 6. Vocabulary Base : The revision number of an item in a working copy. If the item has been locally modified, this refers to the way the item appears without those local modifications. Prev: The revision immediately before the last revision in which an item changed. Technically, this boils down to COMMITTED#1. WebDAV: Distributed Authoring and Versioning.” RFC 2518
  • 7. TortoiseSVN TortoiseSVN is a Windows shell extension that allows you to access SVN repositories within Windows Explorer. Basically, any folder on your hard drive (or remote server) can be turned into an SVN folder and used to store a revision of an SVN repository
  • 8.
  • 9. The “Checkout” operation STEPS 1. Create a working folder locally 2. Right click on folder select SVN Checkout 3. Enter repository location (http://10.1.1.250/project_xxx) (http://subversion.webfeat.mci/project_xxx) 4. Select working folder
  • 10. The “Checkout” operation STEPS 5. Enter your username and password 6. Checkout process begins 7. Working folder now contains latest version The green check means that the folder contains SVN files and is version controlled.
  • 11.
  • 12. Rename Files and Folders 1. Checkout the file or folder to your machine 2. Right-click on the file or folder, and select the menu option SVN Rename 3. Type in the new name, and the icon for the file or folder will change to; 4. Run a Commit and the repository will be updated with the new name
  • 13. Delete Files and Folders 1. Checkout the file or folder to your machine 2. Right-click on the file, and select the Delete... option from the TortoiseSVN menu:
  • 14. Adding Files and Folders 1. Checkout the latest version 2. Move the new file(s) and folder(s) to the location you want them in the repository 3. Right-click on the file(s) and folder(s) you want to add to the repository, and select the SVN Add. 4. To make the change stick, run a Commit and make sure the check boxes are checked for adding the items you want to add
  • 15. Updates 1. Update your local snapshot of the repository to the latest version available by running an Update Operation. 2. Right-click on a folder containing versioned files and folders in it, and select the SVN Update... menu option. NOTE: Only the files already checked out will be updated (or deleted, if they were deleted in the repository since you last updated) Only the files already on your hard drive will be touched, and they can only be deleted or overwritten with the latest version of the file.
  • 16. Conflicts – the scenario In the following example, we will be committing a change to the repository. Note: please don't actually make a commit to the repository for this tutorial - just read along! (We don't want the iris4 repo to get messed up with a bunch of 'SVN practice' commits.) If you have modified any of the files you have checked out, added new files to the folder (or a sub-folder) where you have versioned files, or if you have deleted versioned files, you will have to commit these changes to the SVN repository to try and make them stick. I say try here because it is possible that the commit operation will fail if your changes conflict with someone else's changes
  • 17. Conflicts When you try to commit your file you get the following message You then run an Update operation, and you will see the following:
  • 18. Conflicts After you click OK, the folder containing main.cpp will now have several new, non-versioned files in it: 3 1 4 2
  • 19. Conflicts main.cpp.mine This is what main.cpp v31 looked like after you changed it (no conflict markers). main.cpp.r31 This is what version 31 of main.cpp looked like (the file you checkout and then modified). main.cpp.r32 This is what the current version of main.cpp looks like (on the server). main.cpp During the Update operation, conflict markers were inserted into this file.
  • 20. Conflicts You can now right-click on the file main.cpp, and under the TortoiseSVN option, select Edit Conflicts:
  • 21. Conflicts You can now right-click on the file main.cpp, and under the TortoiseSVN option, select Edit Conflicts:
  • 22. Branching The Never-Branch system (Often used by nascent projects that don't yet have runnable code.) Users commit their day-to-day work on /trunk. Occasionally /trunk "breaks" (doesn't compile, or fails functional tests) when a user begins to commit a series of complicated changes. Pros: Very easy policy to follow. New developers have low barrier to entry. Nobody needs to learn how to branch or merge. Cons: Chaotic development, code could be unstable at any time.
  • 23. Branching The Always-Branch system (Often used by projects that favor heavy management and supervision.) Each user creates/works on a private branch for every coding task. When coding is complete, someone (original coder, peer, or manager) reviews all private branch changes and merges them to /trunk. Pros: /trunk is guaranteed to be extremely stable at all times. Cons: Coders are artificially isolated from each other, possibly creating more merge conflicts than necessary. Requires users to do lots of extra merging. Occasionally /trunk "breaks" (doesn't compile, or fails functional tests) when a user begins to commit a series of complicated changes.
  • 24. Branching The Branch-When-Needed system (This is the system used by the Subversion project.) Users commit their day-to-day work on /trunk. Rule #1: trunk must compile and pass regression tests at all times. Rule #2: a single commit (changeset) must not be so large so as to discourage peer-review. Rule #3: if rules #1 and #2 come into conflict (i.e. impossible to make a series of small commits without disrupting the trunk), then the user should create a branch and commit a series of smaller changesets Pros: /trunk is guaranteed to be stable at all times. The hassle of branching/merging is somewhat rare. Cons: Adds a bit of burden to users' daily work: they must compile and test before every commit.