- 1. Subversion An Open-source Revision Control Systems
2. Why revision control?
- Keep track of changes to your code base over time.
- Compare differences in revisions (see exactly what has
changed).
- More than one person can work on the same code base
concurrently, even the same files.
3. Why Subversion?
- Created as a compelling replacement for CVS and by most
accounts has met this goal.
- Used by many free/open-source projects.
- Mature and stable software.
4. Subversion's Architecture
- Subversion is made up of several layers including client access
(command line or GUI), repository access (DAV, SVN, or Local), and
repository storage (Berkeley DB or FSFS) .
- SeeSubversion's Architecture .
5. Installing Subversion
-
- Installing Subversion is beyond the scope of this presentation.
SeeInstalling Subversionin the Version Control with Subversion
book. There are also several hosted Subversion options. See the
Sites that Offer Subversion Hosting section on theSubversion
Linkspage.
6. Basic Concepts
- Repository centralized data store
7. Typical Work Flow
- svn checkout(creates your workingcopy )
- Modifydirectories and/or files in the working copy.
- svn update( copyandmergepublic repository changes into private
working copy)
- svn commit( copyandmergeprivate working copy modifications into
public repository)
- Go back to step 2 and repeat.
8. Common Working Copy Operations
- Make modifications to files already in the working copy.
- svn add(adds files and/or directories)
- svn copy(copy a file or directory)
- svn delete(delete a file or directory)
- svn diff(display differences between working copy item(s) and
BASE)
- svn move(move file or directory equivalent to a copy followed
by a delete)
- svn revert(revert working copy changes)
- svn status(print status of working copy files and
directories)
9. Standard Repository Layout
- Trunk holds the main line of development.
- Trunk is copied (Subversion copies are cheap) to a branch,
typically when preparing a release.
- A branch is copied to a tag, usually to tag a release. Tags
should never be committed to.
10. Example Repository Layout /trunk /branches /1.0.x /1.1.x
/tags /1.0.1 /1.0.2 /1.0.3 /1.1.0 11. Advanced Topics
- Keyword substitution ( svn:keywords )
- End-of-line character ( svn:eol-style )
- Externals definitions ( svn:externals )
- Ignore unversioned items ( svn:ignore )
- Read theVersion Control with Subversionbook! It's freely
available online and averywell written resource.
12. Questions?