GL405 - Subversion for Software Developers

  1. Introduce students to the basic concepts of version control and their function
    1. Provide context to what challenges version control systems are designed to address
    2. Show how software developers can use diff tools to create and maintain sets of software patches
    3. Demonstrate how patches can be applied and organized to create a historical set of changes that describe a project’s history
  2. Introduce Subversion and explain how it acts as a centralized version control system
    1. Cover how a repository is organized and the ways it is possible to interact with data
    2. Explain how Subversion differs from other version control systems, such as Git, Mercurial, or Bazaar
  3. Explore common Subversion operations such as project/repository creation, source checkout, adding/editing files, and committing changes
  4. Discuss version control best practices and workflows. Provides hands-on exercises so that students become comfortable working with version control using both GUI tools and the command line
  5. Describe how Subversion integrates with other tools and can be integrated with bug/issue tracking management and continuous testing servers

Recommended Text: Eric Sink. Version Control by Example. 2011. Pyrenean Gold Press, Champaign, Illinois.

Prerequisites:
  1. An Introduction to Version Control: Getting started with version control and Subversion
    1. What are the challenges of collaboration?
    2. Distributed workflows
    3. Tracking changes and history
    4. Providing a frameworks for developers to experiment safely
    5. What is version control?
    6. A solution for the challenges of collaboration
    7. A mechanism for working with a distributed group
    8. A system for tracking changes
    9. Types of version control systems: distributed versus central
    10. What is Subversion?
    11. Subversion History
    12. Subversion Architecture
    Lab Tasks: Diff/Patch Operations
    1. Use command line and GUI tools to compare changes to source code files
    2. Create diff files that can be exchanged with other software developers for collaboration and code review
    3. Show how diff files can be used to create snapshots of a project and it is then possible to step forward or backward through the history
  2. Subversion
    1. Installation
    2. Creating Repositories and Projects
    3. Basic Operations
    4. Create
    5. Checkout
    6. Commit
    7. Update
    8. Add Edit
    9. Delete
    10. Rename
    11. Move
    12. Status
    13. Diff
    14. Revert
    15. Log
    16. Tag
    17. Branch
    18. Merge
    19. Resolve
    20. Lock
    Lab Tasks: Subversion Core Operations
    1. Show developers the most important Subversion operations
    2. Work through examples of how to create repositories, add files to source control, generate branches, and perform merges
    3. Work with students to create personal project repositories and experiment with Subversion’s core feature set
  3. Subversion Tools
    1. TortoiseSVN: Exposing the power of Subversion inside of the Windows Shell
    2. SubClipse: Accessing Subversion from Eclipse
    3. Versions: A Mac OS X SubVersion GUI
    4. What additional capabilities the GUI brings to Subversion
    Lab Tasks: GUI Tools
    1. Look at additional utilities included in TortoiseSVN and SubClipse (Versions/ SubClipse for Mac OS X users) and how they become a part of the larger Integrated Development Environment/Operating System
  4. Beyond Basics
    1. Workflows
    2. Managing software releases
    3. Discrete version management for applications teams
    4. Management strategies for web teams
    5. Integrating Subversion into web based tools: Bug/issue and time tracking utilities and beyond
    6. Security best practices: Securing access to a repository and determining rights/privileges
    7. Protecting repositories on disk
    8. Subversion over SSH
    9. Subversion over HTTP (Apache)
    10. Subversion in a world of distributed version control
    11. Continuous integration testing and software validation
    Lab Tasks
    1. Demonstrate and practice advanced operations related to workflow
    2. Show how Subversion can be integrated with external tools, such as bug/issue trackers
    3. Look at the methods for securing access to a repository
Supported Distributions:
None
Course Outline:
  1. An Introduction to Version Control: Getting started with version control and Subversion
    1. What are the challenges of collaboration?
    2. Distributed workflows
    3. Tracking changes and history
    4. Providing a frameworks for developers to experiment safely
    5. What is version control?
    6. A solution for the challenges of collaboration
    7. A mechanism for working with a distributed group
    8. A system for tracking changes
    9. Types of version control systems: distributed versus central
    10. What is Subversion?
    11. Subversion History
    12. Subversion Architecture
    Lab Tasks: Diff/Patch Operations
    1. Use command line and GUI tools to compare changes to source code files
    2. Create diff files that can be exchanged with other software developers for collaboration and code review
    3. Show how diff files can be used to create snapshots of a project and it is then possible to step forward or backward through the history
  2. Subversion
    1. Installation
    2. Creating Repositories and Projects
    3. Basic Operations
    4. Create
    5. Checkout
    6. Commit
    7. Update
    8. Add Edit
    9. Delete
    10. Rename
    11. Move
    12. Status
    13. Diff
    14. Revert
    15. Log
    16. Tag
    17. Branch
    18. Merge
    19. Resolve
    20. Lock
    Lab Tasks: Subversion Core Operations
    1. Show developers the most important Subversion operations
    2. Work through examples of how to create repositories, add files to source control, generate branches, and perform merges
    3. Work with students to create personal project repositories and experiment with Subversion’s core feature set
  3. Subversion Tools
    1. TortoiseSVN: Exposing the power of Subversion inside of the Windows Shell
    2. SubClipse: Accessing Subversion from Eclipse
    3. Versions: A Mac OS X SubVersion GUI
    4. What additional capabilities the GUI brings to Subversion
    Lab Tasks: GUI Tools
    1. Look at additional utilities included in TortoiseSVN and SubClipse (Versions/ SubClipse for Mac OS X users) and how they become a part of the larger Integrated Development Environment/Operating System
  4. Beyond Basics
    1. Workflows
    2. Managing software releases
    3. Discrete version management for applications teams
    4. Management strategies for web teams
    5. Integrating Subversion into web based tools: Bug/issue and time tracking utilities and beyond
    6. Security best practices: Securing access to a repository and determining rights/privileges
    7. Protecting repositories on disk
    8. Subversion over SSH
    9. Subversion over HTTP (Apache)
    10. Subversion in a world of distributed version control
    11. Continuous integration testing and software validation
    Lab Tasks
    1. Demonstrate and practice advanced operations related to workflow
    2. Show how Subversion can be integrated with external tools, such as bug/issue trackers
    3. Look at the methods for securing access to a repository
Upcoming GL405 Classes
No classes currently scheduled.
Request this class
Don't see what you're looking for? Check our schedule or make a request.