• Subversion maintains snapshots of the code
• Allows many people to concurrently work
on a codebase.
• Subversion is source control with a central
• Usually integrates with a frontend: Trac
• Continuous incremental backup.
• Ability to recall older code.
• Distributed development.
• Various versions of a single project.
• Tracking bugs, timeline, goals and releases.
• Developers checkout code from the
repository to a local working-copy.
• After making edits, they commit changes.
• At any point, they can revert to an older
version of the codebase.
• They update their local working copy
frequently to keep up with changes.
But how does
• A system to track changes in ﬁles.
• The code is initially imported into the
• Then a special “subversion-aware”
directory is checked-out.
• Developers commit and update.
• Subversion tracks the changesets and the
• checkout: Obtain a new working copy.
• import: Import code into repository initially.
• commit: Update repository with changes.
• update: Update working-copy with changes.
• Other commands: revert, move, copy, merge.
Major features of Trac
• Frontend to a Subversion repository.
• Shows the changesets and timeline.
• Has a bug tracker which integrates with the
• Simple project management.
Some good Subversion
• Follow the branches, tags, trunk structure.
• All code should be in the repository!
• Update code at the start of every day.
• Only commit coherent changes.
• The central repository should always be
• Branch as less as possible.