1 / 16

Subversion, an Open Source Version Control System

Subversion, an Open Source Version Control System. An Introduction.

akio
Download Presentation

Subversion, an Open Source Version Control System

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


  1. Subversion, an Open Source Version Control System An Introduction

  2. “We are always amazed when we read statistics about the number of software developers who do not use version control software in their work. When we think about the number of times that we’ve personally lost work because we carelessly deleted the wrong file or introduced a bug into the previously working code, and the number of times we’ve been saved from such a fate by version control, we truly can’t understand how someone would choose not to use the tools that are designed to prevent just such catastrophes.” Daniel Berlin and Garrett Rooney. Practical Subversion, Second Edition (Expert's Voice in Open Source). New York: Apress, 2006.

  3. What is version control? • Maintains a history of all changes made to a projects software code and documentation. • When changed, who changed, and if done right, why? • Prevents overwriting of changes made to files. • Completed edits are immediately available to all team members.

  4. Why Subversion?

  5. Key Decision Points • Open source • Free and can be customized if necessary • More mature and feature rich than most commercial products • Widely used and supported • Integrated into many development tools • Flexible in its implementation • Works on Linux, Windows, Mac, and Solaris • It works for the needs of USIIS!

  6. History of Subversion • CollabNet Inc. were reaching the limits of CVS capabilities and decided to create a replacement open source version control system. • In 2000, CollabNet Inc. asked Karl Fogel, the author of a well known book on CVS, and Jim Blandy, an Engineer at Red Hat Inc., to begin work. • Subversion was built from the ground up to keep what worked well in CVS and redo what did not. • Released version 1.0 February 23, 2004. • Still actively being developed, its current version is 1.6.

  7. Improvements Over CVS • Can rename a file and delete directories • File metadata are versioned • Changes to the repository are atomic • More efficient repository design and network utilization • Binary files are well supported • Provides multiple options for sharing a repository over a network • Direct network drive access • Access over http/https using apache modules

  8. Using Subversion

  9. The Subversion Repository • Subversion has the choice of two back ends that the repository can reside in. • Filesystem based (default) • Berkley DB Relational Database

  10. Change Conflict Management • Locking • When a file is being edited, lock it so nobody else can make changes to it. • Non-Locking • When a file is being edited, allow others to make changes simultaneously, but manage those changes when merged back into the repository. • Subversion is non-locking • With optional locking

  11. Repository Structure • No directory structure configuration restrictions • Industry standard • Trunk, Branches, Tags

  12. branches project1 project2 tags project1 project2 trunk project1 project2 (works well when the projects are closely related) project1 branches tags trunk project2 branches tags trunk (works well when the projects are not closely related) Repository Structure Examples

  13. Application Programming Interface (API’s) • Subversion provides a command line interface • From the beginning designed to make it easy for other tools to integrate • Many tools have already added Subversion integration • IDE’s • Netbeans, Eclipse, Jdeveloper, Visual Studio • Project Management Tools • Trac • Many new tools have been built to provide a GUI front end for Subversion • TortoiseSVN

  14. Subversion Administration • Version numbers refer to the entire repository and all of the files it contains • Designed to have many users and one administrator • Non administration commands will not cause any information to be lost • Repository backups should be done • Whole repositories can be moved

  15. References Used

  16. Where to start? • Subversion • http://subversion.tigris.org/ • Subversion Online Book • http://www.open.collab.net/community/subversion/svnbook/ • Subversion Quick Reference Card • http://www.collab.net/community/subversion/articles/SvnQuickReferenceCard.html • Subversion Blog • http://blogs.open.collab.net/svn/ • TourtoiseSVN • http://tortoisesvn.tigris.org/

More Related