Basic Source Control With Subversion

Post on 06-May-2015

4.208 views 6 download

description

A talk I gave at Torque on 6th Sep, 2007

Transcript of Basic Source Control With Subversion

Basic SCM with Subversion & Trac

Vishnu Gopalwww.vish.in

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?