Presentation on the Subversion open-source revision control system for the Burlington, VT PHP Users Group
Citation preview
1. Subversion An Open-source Revision Control Systems
2. Why revision control?
Keep track of changes to your code base over time.
Retrieve past revisions.
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.
Free/Open-source
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
Lock-modify-unlock
Copy-modify-merge
Working copy
BASE
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
/branches
/tags
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.