First Technology Transfer

Standard and Advanced Technical Training, Consultancy and Mentoring

SVN Installation and Administration

Duration: 1 Day

Detailed Course Outline

Short Summary

This course aims to extend the skills of system administrators so that they can administer Subversion repository servers and advise of best practices in the use of Subversion.

Intended Audience

The course will be useful to

  • Systems administrators setting up and managing SVN
  • repositories
  • Programmers who will be implementing SVN "hook scripts"
  • Project managers seeking to understand how to make best use of SVN

The course assumes a basic understanding of operating systems and computer networking as well as familiarity working both via a Graphical User Interface (GUI) and via a Command Line console. It is also assumed that attendees have a working knowledge of SVN at the SVN User Level, and a basic understanding of system administration.

Course Overview

The purpose of this course is to provide a good understanding of installation and administration of SVN repositories, more advanced aspects of branching, tagging and merging as well as access control and security aspects of managing SVN repositories.

Note: Where Administrators do not have experience of the installation and configuration of Apache, a two day intensive introduction to Apache for System Administrators is available. In addition, there are two day modules available on Bash/Python programming for Subversion Administrators and advanced Subversion users.

Course Contents

  • Overview of SVN Repository Access Mechanisms
  • Accessing an SVN repository
    • Accessing a local repository
    • Accessing a repository over a network using the SVN protocol ( also SVN + SSH )
    • Accessing a repository over a network using HTTP/HTTPS via Apache, WebDav and the mod_dav_svn
    • module
  • Repository Administration
    • Designing the repository directory layout
    • Using file backup systems with the repository
    • Dumping and loading repository contents
    • Berkeley DB vs. native-filesystem based repository
  • Repository permissions
    • Apache authentication and access control
    • SVN ( SVN + SSH ) authentication and access control
  • 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
        • View CVS
        • SVN::Web
  • Introduction to and overview of the Subversion APIs
    • Understanding the organisation and inter-relations of the SVN libraries
    • APR and Core SVN libraries
    • Client library
    • Repository access library
    • Repository library
    • Filesystem library
    • Using Subversion from Perl
    • Using Subversion from Python