(This page is a copy of CBIL's internal Subversion documentation. Changes should be made in both places).
Using Subversion
Overview
See also SubversionInEmacs.
Subversion is a source code control system that allows multiple developers to effortlessly work together on software projects. It is a replacement for CVS.
CBIL maintains three subversion repositories: cbil, api, and gus. Each repository has one or more projects contained within it (for example, the gus repository contains the GUS project and the WDK project). Each project has a trunk, branches, and tags associated with it. The trunk serves as the main area of development. Branches are copies of the trunk (or of another branch) that allow a developer to make significant changes to the code while not impacting the trunk. Branches also allow developers to fix issues in old code that may now be inconsistent with the trunk. This last point is acheived by using tags, which allow developers to "tag" items in the repository with a friendly name, allowing easy future access to the repository at a point in time.
For example, a project is developing software using the trunk. Each release, they tag their software. It's now (as of release 8.0) been discovered that there was a bug in the 2.0 release, and it needs to be addressed and rerelased. The team can branch the rel_2_0 tag, creating a copy of the repository as it looked at the rel_2_0 tag. They can then fix the issue in the 2.0 release. If they choose, they can then "merge" the changes from this branch back into the trunk, so the fix will apply for the 8.0 release as well.
The Subversion Repository thus follows the following layout:
repository/
projectA/
trunk/
project_files_and_directories
branches/
tags/
projectB/
trunk/
project_files_and_directories
branches/
tags/
Commit Mailing Lists
Each repository has a dedicated mailing list for commit notifications. You must sign up for these if you intend to commit at:
CBIL -
https://mail.pcbi.upenn.edu/mailman/listinfo/cbil-commits
GUS -
https://mail.pcbi.upenn.edu/mailman/listinfo/gus-commits
APIDB -
https://mail.pcbi.upenn.edu/mailman/listinfo/apidb-commits
Common Subversion Actions
Checking Out
To check out a project:
svn cohttps://www.cbil.upenn.edu/svn/{repos}/{project}/trunk {dir}
- Replace {repos} with the repository name (gus, cbil, api)
- Replace {project} with the project name
- Replace {dir} with the name of the directory you'd like to checkout into. For example, using GUS_HOME will create the directory GUS_HOME (if necessary) and place files from the repository directly in that directory.
Commiting
To commit a file or directory:
svn commit {file/directory}
- Replace {file/directory} with the file or directory you wish to commit. If omitted, the current directory is used.
For more information, permissions issues, or help
Contact
msaffitz@pcbi.upenn.edu




