Apache Subversion (SVN) is a version control system initiated in 2000. It is used to maintain current and historical versions of files such as source code, web pages, and documentation. Its goal is to be a mostly-compatible successor to the widely used Concurrent Versions System (CVS). In a 2007 report by Forrester Research, Subversion was recognized as the sole leader in the Standalone Software Configuration Management (SCM) category and a strong performer in the Software Configuration and Change Management (SCCM) category. Subversion is released under the Apache License, making it free software.
Target Audience
The course will be useful for
Programmers working on projects using version control
Web content developers needing to know how to retrieve and store project work in a repository
Document authors needing to store and retrieve work in a project repository
System administrators needing to understand SVN
Teams of application developers and programmers who need to work co-operatively on projects
Prerequisites
Able to Create, Copy, move and delete files and directories
Expected to be able to Access applications from either command line of using graphical user interfaces
Able to understand file system concepts such as files, directories, permissions, access control
Course Outline
Repository Basics
What is a repository
What should be stored in a repository
Tracking file changes and history
Repository URL and protocols
Working With Revisions
Import project
Concept of working copies
Checking out and exporting
Checking in and writing log messages
Solving conflicts
Finding differences between revisions and working copy files
Reverting changes
Adding new files to the repository
Removing, moving and renaming files in the repository and working copy
Creating snapshots with tagging
Switching files to a certain moment in the past
Sharing Files
Locking and unlocking file
The Lock-Modify-Unlock Solution versus Copy-Modify-Merge Solution
Branching and Merging
Creating branches
Merging changes
Troubleshooting
How to deal with not properly moved or copied files and folders
Dealing with multiple working copies
Using the Common SVN Commands
Checking work out into a working area / workspace
Updating the contenst of the workspace
Adding new files and directories
Ignoring certain files in the workspace when checking work back into the repository
Renaming files
Renaming directories
Differencing to see what has changed
Handling merge conflicts
Committing changes
Examining the change history
Removing changes
More Advanced SVN Usage - Tags and Branches
Copying files and directories in the repository
The concepts underlying Tagging and Branching
In SVN Branches and Tags are simply copies
Tagging and branching policies
Creating Release Branches
Working on a Release Branch
Generating a Release
Fixing bugs and defects in a Release Branch
Setting up and working with "Experimental" / "New Features" branches
Merging work from an Experimental Branch back into the Main Trunk