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
-
Subversion (svn and svnadmin) (subversion.tigris.org/)
-
Ruby (www.ruby-lang.org/en/downloads/)
-
RubyGems (docs.rubygems.org/)
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.