What is SC?

SC is a wrapper around Subversion that automates and standardizes branching and merging. The primary goal of the project is to simplify the more complex features of Subversion and therefore encouraging their use.

Quick Start

This is a very terse introduction to using SC. For more information, please read the INSTALL file, and it is highly recommended that you read the doc/manual.txt file.

Install SC Dependencies

Downloading and Installing SC

SC is distributed as a RubyGem. You can install SC using the gem command:

> gem install svnauto --include-dependencies

Other download options can be found at: rubyforge.org/projects/svnauto/

Getting SC from Its Subversion Repository

> svn co http://pmade.com/svn/oss/sc/trunk sc-trunk

Configure Your Repositories

Start by telling SC about the repositories you use:

> sc config --add

You can also use this method to create a new local repository. When prompted for a repository URL, give a path to a nonexistent directory.

Creating a Project with SC

SC considers top-level directories in the repository to be projects. You can create a new project using the SC ‘create’ command. This command is non-destructive, so you can use it to make sure that an existing project has the correct directory layout. For more information, see doc/manual.txt.

> sc create my-new-project

Making a Release of Your Project

When it’s time to make an official public release of your software, you should create a release branch and tag the release:

> sc release 1.0.0

SC uses a strict version number scheme. Version numbers are formated as MAJOR.MINOR.MACRO. Each component of the version number can be up to six digits long, but they are restricted to integers.

MAJOR.MINOR version releases are kept on their own release branch. MACRO releases are tags on a release branch. For more information, see doc/manual.txt.

Fixing Bugs on a Release Branch

This is an example that illustrates the use of bug fix branches. Here we take the necessary steps to fix a bug on the release branch. The SC ‘bug’ command takes a unique bug identifier, which usually comes from a bug tracking system:

> sc bug 25
> # edit files, fix bug, test, and commit
> sc bug --close 25

The bug fix is then merged with the release branch and the trunk.