Basic Source Control With Subversion
Click here to load reader
-
Upload
vishnu -
Category
Technology
-
view
4.208 -
download
6
description
Transcript of Basic Source Control With Subversion
Contents
• What, Why and How?
• Subversion Commands
• Demo: Command-line tools
• GUI tools
• Project Layout
• Trac: overview
What?
• Subversion maintains snapshots of the code repository.
• Allows many people to concurrently work on a codebase.
• Subversion is source control with a central repository.
• Usually integrates with a frontend: Trac
Why?
• Continuous incremental backup.
• Ability to recall older code.
• Distributed development.
• Various versions of a single project.
• Tracking bugs, timeline, goals and releases.
Central Repository
How?
• 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.
Work with Subversion
But how does Subversion work?
• A system to track changes in files.
• The code is initially imported into the repository.
• Then a special “subversion-aware” directory is checked-out.
• Developers commit and update.
• Subversion tracks the changesets and the commit-log.
Common Subversion Commands
• 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.
Subversion: Demo
GUI Tools
• TortoiseSVN in Windows
• Right-click a directory: get a context-menu with everything in there.
• Useful Integration with diff and patch.
• Reasonably fast.
Project Layout
• trunk
• All constant development happens here.
• branches
• Special purpose development here.
• tags
• Releases are “tagged” for archiving.
Trac: Demo
Major features of Trac
• Frontend to a Subversion repository.
• Shows the changesets and timeline.
• Has a bug tracker which integrates with the Subversion commit-log.
• Simple project management.
Some good Subversion practices
• 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 consistent.
• Branch as less as possible.
FinisThe end. Questions?