SlideShare uma empresa Scribd logo
1 de 30
Getting started with Subversion Jordan Hatch
What is subversion? Version control system Open Source Easy to set up
Why Version Control?
Keep Project organised File and project history Works with any text-based files More than one person editing Easy to branch/merge projects Small footprint on server
A Backup System Rollback changes on files Find out who changed what!
Setting Up Subversion
Choose the server… svnserve Easy to set up Can be used with SSH Apache HTTP Server Harder to set up HTML repository browsing Multiple authentication methods
svnserve Available for multiple platforms Windows: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-serversetup-svnserve.html Mac: http://developer.apple.com/mac/library/documentation/Darwin/ Reference/ManPages/man8/svnserve.8.html Linux Package Manager
Creating a repository Linux & Mac OS X: $ svnadmin create /home/jordan/repo Windows: svnadmin create C:epo
Choose A Client… Command Line! “Out of the box” SVN support on Mac OS X Easy to install on Linux Binaries for Windows – http://subversion.tigris.org/ GUIs Tortoise SVN – Windows only IDE Plugins Versions App for Mac
SVN Basics
Repository layout No forced structure Most commonly-used way…
REPOSITORY LAYOUT trunk – Main project development branches – Experimental and release branches tags – “Snapshot” of a project
Importing Your Project $ svn import myproject /path/to/repo br />		-m “Importing my project” Adding myproject/page.php Adding myproject/style.css Adding myproject/includes Adding myproject/includes/db.php Committed revision 1.
Checking out Project $ svn checkout /path/to/repo/project A		myproject/page.php A		myproject/style.css A		myproject/includes A		myproject/includes/db.php Checked out revision 1.
Committing changes $ svn status A		myproject/login.php A		myproject/logout.php M		myproject/page.php M		myproject/style.css M		myproject/includes/db.php
Committing Changes $ svn commit -m “Added login page.” Sending 	myproject/login.php Sending 	myproject/logout.php Sending	myproject/page.php Sending	myproject/style.css Sending	myproject/includes/db.php Transmitting file data .  Committed revision 3.
Resolving Conflicts $ svn status C		myproject/login.php
Resolving Conflicts Four ways of resolving conflicts: Overwrite with your version of the file Overwrite with the existing version Merge the changes manually Merge using a merge tool
RESOLVING CONFLICTS $ svn resolve --accept working myproject/login.php Resolved conflicted state of ‘myproject/login.php'  $ svn commit -m “Added login session check.” Sending 	myproject/login.php Transmitting file data .  Committed revision 6.
Creating Branches & Tags It’s just a copy of a folder… Merge changes back into trunk later $ svn copy /project/trunk /project/branches/1.0 $ svn copy /project/trunk /project/tags/1.0 $ svn copy /project/branches/1.0 /project/tags/1.1
SVN Examples
Release branches Used often in open source projects Very flexible Allows for maintenance releases while core is worked on for next major release.
Release Branches tags 1.0 1.0.1 1.5 1.5.1 1.7 branches 1.7 1.5 1.0 trunk
Seen in the wild… WordPress’ SVN Zend Framework SVN
Branching Concepts Feature Branches Allows for experimentation Vendor Branches Keeping track of code libraries Allows for modifications to suit your needs
Conclusion You need version control! SVN is open-source and (fairly) easy to set up… Use branches and tags to experiment with your code. Organise it however you like.
And IF You Get Stuck… http://svnbook.red-bean.com Everything you need to know about SVN.
Thanks (: Jordan Hatch - @1jh http://www.jordanh.net/

Mais conteúdo relacionado

Mais procurados

SVN Usage & Best Practices
SVN Usage & Best PracticesSVN Usage & Best Practices
SVN Usage & Best Practices
Ashraf Fouad
 
Version Control With Subversion
Version Control With SubversionVersion Control With Subversion
Version Control With Subversion
Samnang Chhun
 
Subversion client
Subversion clientSubversion client
Subversion client
rchakra
 
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
Philip Johnson
 

Mais procurados (20)

Subversion workshop
Subversion workshopSubversion workshop
Subversion workshop
 
Version Control with SVN
Version Control with SVNVersion Control with SVN
Version Control with SVN
 
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
 
SVN Best Practices
SVN Best PracticesSVN Best Practices
SVN Best Practices
 
SVN Basics
SVN BasicsSVN Basics
SVN Basics
 
Subversion User Guide
Subversion User GuideSubversion User Guide
Subversion User Guide
 
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
 
svn
svnsvn
svn
 
Using svn
Using svnUsing svn
Using svn
 
Svn tutorial
Svn tutorialSvn tutorial
Svn tutorial
 
Version Control and Continuous Integration
Version Control and Continuous IntegrationVersion Control and Continuous Integration
Version Control and Continuous Integration
 
Subversion client
Subversion clientSubversion client
Subversion client
 
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
 
Totalsvn Usage And Administration By Gopi
Totalsvn Usage And Administration By GopiTotalsvn Usage And Administration By Gopi
Totalsvn Usage And Administration By Gopi
 
Pipeline based deployments on Jenkins
Pipeline based deployments  on JenkinsPipeline based deployments  on Jenkins
Pipeline based deployments on Jenkins
 
Introduce to SVN
Introduce to SVNIntroduce to SVN
Introduce to SVN
 
JavaOne 2016 - Pipeline as code
JavaOne 2016 - Pipeline as codeJavaOne 2016 - Pipeline as code
JavaOne 2016 - Pipeline as code
 
Pipeline as code - new feature in Jenkins 2
Pipeline as code - new feature in Jenkins 2Pipeline as code - new feature in Jenkins 2
Pipeline as code - new feature in Jenkins 2
 
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
 

Destaque

Eat my data
Eat my dataEat my data
Eat my data
Peng Zuo
 
DB-IR-ranking
DB-IR-rankingDB-IR-ranking
DB-IR-ranking
FELIX75
 
Plagiarism Guidelines 2009
Plagiarism Guidelines 2009Plagiarism Guidelines 2009
Plagiarism Guidelines 2009
Tedine Soule
 

Destaque (19)

Eat my data
Eat my dataEat my data
Eat my data
 
Angular Weekend
Angular WeekendAngular Weekend
Angular Weekend
 
Angular 2 Campus Madrid Septiembre 2016
Angular 2 Campus Madrid Septiembre 2016Angular 2 Campus Madrid Septiembre 2016
Angular 2 Campus Madrid Septiembre 2016
 
Git vs SVN - Eine vergleichende Einführung
Git vs SVN - Eine vergleichende EinführungGit vs SVN - Eine vergleichende Einführung
Git vs SVN - Eine vergleichende Einführung
 
DB-IR-ranking
DB-IR-rankingDB-IR-ranking
DB-IR-ranking
 
Digitaal Toetsen Mp Voorlichtingv1
Digitaal Toetsen Mp Voorlichtingv1Digitaal Toetsen Mp Voorlichtingv1
Digitaal Toetsen Mp Voorlichtingv1
 
Cm2007
Cm2007Cm2007
Cm2007
 
Widgets
WidgetsWidgets
Widgets
 
Pir
PirPir
Pir
 
Circuit
CircuitCircuit
Circuit
 
Ditre Italia Leather kit
Ditre Italia Leather kitDitre Italia Leather kit
Ditre Italia Leather kit
 
Plagiarism Guidelines 2009
Plagiarism Guidelines 2009Plagiarism Guidelines 2009
Plagiarism Guidelines 2009
 
Next Generation Media Quarterly April 2011
Next Generation Media Quarterly April 2011Next Generation Media Quarterly April 2011
Next Generation Media Quarterly April 2011
 
NTTデータグループウェブサイトのマルチデバイス対応
NTTデータグループウェブサイトのマルチデバイス対応NTTデータグループウェブサイトのマルチデバイス対応
NTTデータグループウェブサイトのマルチデバイス対応
 
Holm
HolmHolm
Holm
 
Integrating Digital Marketing Into Your Business Strategy: 2011 Agriculture M...
Integrating Digital Marketing Into Your Business Strategy: 2011 Agriculture M...Integrating Digital Marketing Into Your Business Strategy: 2011 Agriculture M...
Integrating Digital Marketing Into Your Business Strategy: 2011 Agriculture M...
 
Программа поддержки экспорта инновационной и высокотехнологичной продукции, р...
Программа поддержки экспорта инновационной и высокотехнологичной продукции, р...Программа поддержки экспорта инновационной и высокотехнологичной продукции, р...
Программа поддержки экспорта инновационной и высокотехнологичной продукции, р...
 
Catalogo divani Ditre Italia 2011
Catalogo divani Ditre Italia 2011Catalogo divani Ditre Italia 2011
Catalogo divani Ditre Italia 2011
 
Update On The Banking Industry
Update On The Banking IndustryUpdate On The Banking Industry
Update On The Banking Industry
 

Semelhante a Getting Started With Subversion

Practical SVN for PHP Developers
Practical SVN for PHP DevelopersPractical SVN for PHP Developers
Practical SVN for PHP Developers
Lorna Mitchell
 
Digital Fabrication Studio 0.3 Information
Digital Fabrication Studio 0.3 InformationDigital Fabrication Studio 0.3 Information
Digital Fabrication Studio 0.3 Information
Massimo Menichinelli
 
Version control with Subversion
Version control with SubversionVersion control with Subversion
Version control with Subversion
O. R. Kumaran
 
Subversion @ JUG Milano 11 dic 2009
Subversion @ JUG Milano 11 dic 2009Subversion @ JUG Milano 11 dic 2009
Subversion @ JUG Milano 11 dic 2009
Andrea Francia
 
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
Philip Johnson
 
PHP North-East - Automated Deployment
PHP North-East - Automated DeploymentPHP North-East - Automated Deployment
PHP North-East - Automated Deployment
Michael Peacock
 

Semelhante a Getting Started With Subversion (20)

Practical SVN for PHP Developers
Practical SVN for PHP DevelopersPractical SVN for PHP Developers
Practical SVN for PHP Developers
 
Digital Fabrication Studio 0.3 Information
Digital Fabrication Studio 0.3 InformationDigital Fabrication Studio 0.3 Information
Digital Fabrication Studio 0.3 Information
 
subversion.ppt
subversion.pptsubversion.ppt
subversion.ppt
 
Jbossworld Presentation
Jbossworld PresentationJbossworld Presentation
Jbossworld Presentation
 
Version control with Subversion
Version control with SubversionVersion control with Subversion
Version control with Subversion
 
SVN Tutorial
SVN TutorialSVN Tutorial
SVN Tutorial
 
J+s
J+sJ+s
J+s
 
Subversion @ JUG Milano 11 dic 2009
Subversion @ JUG Milano 11 dic 2009Subversion @ JUG Milano 11 dic 2009
Subversion @ JUG Milano 11 dic 2009
 
Digital Fabrication Studio v.0.2: Information
Digital Fabrication Studio v.0.2: InformationDigital Fabrication Studio v.0.2: Information
Digital Fabrication Studio v.0.2: Information
 
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
 
Subversion on .Unix
Subversion on .UnixSubversion on .Unix
Subversion on .Unix
 
Subversion on .Unix
Subversion on .UnixSubversion on .Unix
Subversion on .Unix
 
PHP North-East - Automated Deployment
PHP North-East - Automated DeploymentPHP North-East - Automated Deployment
PHP North-East - Automated Deployment
 
Automated Deployment
Automated DeploymentAutomated Deployment
Automated Deployment
 
Digital Fabrication Studio.02 _Information @ Aalto Media Factory
Digital Fabrication Studio.02 _Information @ Aalto Media FactoryDigital Fabrication Studio.02 _Information @ Aalto Media Factory
Digital Fabrication Studio.02 _Information @ Aalto Media Factory
 
ClearCase Basics
ClearCase BasicsClearCase Basics
ClearCase Basics
 
Professional deployment
Professional deploymentProfessional deployment
Professional deployment
 
Subversion (SVN)
Subversion (SVN)Subversion (SVN)
Subversion (SVN)
 
FlashInTO SVN Presentation
FlashInTO SVN PresentationFlashInTO SVN Presentation
FlashInTO SVN Presentation
 

Último

Último (20)

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...
 
Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...Apidays New York 2024 - The value of a flexible API Management solution for O...
Apidays New York 2024 - The value of a flexible API Management solution for O...
 
ICT role in 21st century education and its challenges
ICT role in 21st century education and its challengesICT role in 21st century education and its challenges
ICT role in 21st century education and its challenges
 
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
Apidays New York 2024 - The Good, the Bad and the Governed by David O'Neill, ...
 
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...
 
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu SubbuApidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
Apidays Singapore 2024 - Modernizing Securities Finance by Madhu Subbu
 
MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024MINDCTI Revenue Release Quarter One 2024
MINDCTI Revenue Release Quarter One 2024
 
2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...2024: Domino Containers - The Next Step. News from the Domino Container commu...
2024: Domino Containers - The Next Step. News from the Domino Container commu...
 
A Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source MilvusA Beginners Guide to Building a RAG App Using Open Source Milvus
A Beginners Guide to Building a RAG App Using Open Source Milvus
 
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
Apidays New York 2024 - Accelerating FinTech Innovation by Vasa Krishnan, Fin...
 
presentation ICT roal in 21st century education
presentation ICT roal in 21st century educationpresentation ICT roal in 21st century education
presentation ICT roal in 21st century education
 
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
Web Form Automation for Bonterra Impact Management (fka Social Solutions Apri...
 
A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?A Year of the Servo Reboot: Where Are We Now?
A Year of the Servo Reboot: Where Are We Now?
 
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot TakeoffStrategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
Strategize a Smooth Tenant-to-tenant Migration and Copilot Takeoff
 
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data DiscoveryTrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
TrustArc Webinar - Unlock the Power of AI-Driven Data Discovery
 
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
Connector Corner: Accelerate revenue generation using UiPath API-centric busi...
 
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin WoodPolkadot JAM Slides - Token2049 - By Dr. Gavin Wood
Polkadot JAM Slides - Token2049 - By Dr. Gavin Wood
 
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
 
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
Emergent Methods: Multi-lingual narrative tracking in the news - real-time ex...
 
Boost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdfBoost Fertility New Invention Ups Success Rates.pdf
Boost Fertility New Invention Ups Success Rates.pdf
 

Getting Started With Subversion

  • 1. Getting started with Subversion Jordan Hatch
  • 2. What is subversion? Version control system Open Source Easy to set up
  • 4. Keep Project organised File and project history Works with any text-based files More than one person editing Easy to branch/merge projects Small footprint on server
  • 5. A Backup System Rollback changes on files Find out who changed what!
  • 7. Choose the server… svnserve Easy to set up Can be used with SSH Apache HTTP Server Harder to set up HTML repository browsing Multiple authentication methods
  • 8. svnserve Available for multiple platforms Windows: http://tortoisesvn.net/docs/release/TortoiseSVN_en/tsvn-serversetup-svnserve.html Mac: http://developer.apple.com/mac/library/documentation/Darwin/ Reference/ManPages/man8/svnserve.8.html Linux Package Manager
  • 9. Creating a repository Linux & Mac OS X: $ svnadmin create /home/jordan/repo Windows: svnadmin create C:epo
  • 10. Choose A Client… Command Line! “Out of the box” SVN support on Mac OS X Easy to install on Linux Binaries for Windows – http://subversion.tigris.org/ GUIs Tortoise SVN – Windows only IDE Plugins Versions App for Mac
  • 12. Repository layout No forced structure Most commonly-used way…
  • 13.
  • 14. REPOSITORY LAYOUT trunk – Main project development branches – Experimental and release branches tags – “Snapshot” of a project
  • 15. Importing Your Project $ svn import myproject /path/to/repo br /> -m “Importing my project” Adding myproject/page.php Adding myproject/style.css Adding myproject/includes Adding myproject/includes/db.php Committed revision 1.
  • 16. Checking out Project $ svn checkout /path/to/repo/project A myproject/page.php A myproject/style.css A myproject/includes A myproject/includes/db.php Checked out revision 1.
  • 17. Committing changes $ svn status A myproject/login.php A myproject/logout.php M myproject/page.php M myproject/style.css M myproject/includes/db.php
  • 18. Committing Changes $ svn commit -m “Added login page.” Sending myproject/login.php Sending myproject/logout.php Sending myproject/page.php Sending myproject/style.css Sending myproject/includes/db.php Transmitting file data . Committed revision 3.
  • 19. Resolving Conflicts $ svn status C myproject/login.php
  • 20. Resolving Conflicts Four ways of resolving conflicts: Overwrite with your version of the file Overwrite with the existing version Merge the changes manually Merge using a merge tool
  • 21. RESOLVING CONFLICTS $ svn resolve --accept working myproject/login.php Resolved conflicted state of ‘myproject/login.php' $ svn commit -m “Added login session check.” Sending myproject/login.php Transmitting file data . Committed revision 6.
  • 22. Creating Branches & Tags It’s just a copy of a folder… Merge changes back into trunk later $ svn copy /project/trunk /project/branches/1.0 $ svn copy /project/trunk /project/tags/1.0 $ svn copy /project/branches/1.0 /project/tags/1.1
  • 24. Release branches Used often in open source projects Very flexible Allows for maintenance releases while core is worked on for next major release.
  • 25. Release Branches tags 1.0 1.0.1 1.5 1.5.1 1.7 branches 1.7 1.5 1.0 trunk
  • 26. Seen in the wild… WordPress’ SVN Zend Framework SVN
  • 27. Branching Concepts Feature Branches Allows for experimentation Vendor Branches Keeping track of code libraries Allows for modifications to suit your needs
  • 28. Conclusion You need version control! SVN is open-source and (fairly) easy to set up… Use branches and tags to experiment with your code. Organise it however you like.
  • 29. And IF You Get Stuck… http://svnbook.red-bean.com Everything you need to know about SVN.
  • 30. Thanks (: Jordan Hatch - @1jh http://www.jordanh.net/