SVN (Subversion) Version Control for Users
Duration: 1 Day
Intended Audience
This course aims to take users with little or no knowledge of the Subversion version control system through to being competent subversion users able to manage revisions, merges and branches. The course covers the use of subversion both from the command line (Unix and Windows) and from the Tortoise GUI under Microsoft Windows
Short Summary
This course aims to take users with little or no knowledge of the Subversion version control system through to being competent subversion users able to manage revisions, merges and branches. The course covers the use of subversion both from the command line (Unix and Windows) and from the Tortoise GUI under Microsoft Windows
Intended Audience
The course will be useful for
- programmers working on projects where the version control system is SVN
- web content developers needing to know how to retrieve and store work in a project specific SVN repository
- document authors needing to know how to retrieve and store work in a project specific SVN repository
- system administrators needing to understand SVN
- teams of application developers and programmers who need to work co-operatively on projects
The course assumes only a basic familiarity with computers and the use of computer tools, both via a Gaphical User Interface and (optional) via a command line interface. Attendees are expected to be able to
- Access applications from either command line of using graphical user interfaces
- Understand file system concepts such as files, directories, permissions, access control
- Create, move and delete files and directories
Course Overview
The purpose of this course is to explain the concepts underlying version control systems and how the SVN version control system works in particular. Normally the use of SVN is covered both using commands entered via a command line console and via a GUI interfaces such as Tortois SVN. In addition to covering the basics of SVN usage the course also discusses important topics such as
- The importance of well structured messages when checking in work
- Strategies for structuring a repository when working on more complex projects
- Version control issues when having to work with software and tools developed by third parties
Key Skills
- Ability to use a SVN repository from the command line
- Ability to use a SVN repository from a GUI tool such as Tortoise SVN
- An understanding of SVN conflicts and their resolution
- Ability to use the history features of SVN to selectively retrieve earlier work or to restore parts of a current project to some earlier state
- An understanding of branches, tags and merging
Key Delivery
Instructor led training with a great deal of hands-onpractice.
Course Contents
- A Repository and what should be stored in it
- Structuring of work into projects, modules and files
- Creating and using a Workspace
- Why versioning is important
- Basic concept of a differencing engine such as diff
- Basic concepts of Tags, Branches, Merging
- Locking options in version control systems
- Configuration Management
- The diff operation for finding the differences between one version of a file and another
- Subversions (SVNs) version numbering scheme
- Versioning of files and directories
- SVN mechanisms for accessing a repository
- Creating a Repository
- Overview of SVN Commands - from the command line
- Accessing SVN Commands via Tortoise SVN
- Creating a basic project
- Creating a workspace and working on a project
- Making changes to project files and updating the repository to store those changes
- Understanding and knowing how to resolve conflicts
- understanding the SVN version numbering system
- 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
- 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
- Structuring Projects
- Partitioning a Repository into Modules
- Working with Third Party Code