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
System administrators who need to install and maintain the Subversion software and Subversion repositories.
Prerequisites
Some knowledge of working with Subversion
Relevant general system administration experience in the operating system(s)
Knowledge of installation and configuration of Apache
Course Outline
Administration of Repository
How to design the repository directory and using layouts
File backup systems within repository
Repository Content-Dumping and Loading
Berkeley DB vs. native-filesystem based repository
Accessing repository from a file system
Why file:// protocol isn't save
When we should use direct file access to repository
SSH and the SVN protocol
SSH authentication
Public key authentication with OpenSSH
Compression and encryption
HTTP / SHTTP-Accessing the repository server via Apache WebDav
Repository and the permissions
Apache authentication and access control
Authentication, authorisation and encryption and compression
Facilitating User Work
Branching and merging
How to handle releases
Considering the design, implementation and possible uses of Hook Scripts
Integration
Web-Based repository interfaces
Integrating SVN with Redmine or other project management tools
Replicating Repository
Migrating from other version control systems
Migrating release histories
Migration principles and strategies
Understanding the Subversion Dumpfile format
Migrating from CVS to Subversion using cvs2svn
Migrating from Perforce to Subversion
Overview of VCP and RevML and their use in migrating from Visual SourceSafe to Subversion
Apache Integration Issues
Authentication, authorisation and encryption
Compression
DAV autoversioning
Troubleshooting mod_dav_svn problems
Best Practices - Use Cases and Patterns
Committing changes - importance of good commit messages
Branching and merging
Working with vendor branches
Integration of version control with testing and integration
Handling releases
Understanding the design, implementation and possible uses of Hook Scripts
Integration of Subversion with other tools
Emacs
Eclipse
Ant
Integrating with Visual Studio.Net via AnkhSVN
Web-Based repository interfaces
Introduction to and overview of the Subversion APIs
Understanding the organisation and inter-relations of the SVN libraries