Subversion Best Practices

From BCCD 3.0

Jump to: navigation, search


BCCD uses the Subversion (SVN) version control system. This document in not meant as an exhaustive guide to SVN but as a guide for using SVN effectively for BCCD development.

See the SVN Book for more detailed explanations on using SVN.

Tips and Tricks

SVN has many, many commands. These are some useful ones that are tricky to find in the documentation:

With any of these commands, you can use the ^ to indicate the path to the current repository.

Branching technique

To make the job of the release engineer easier, you should follow this technique when working on specific milestones:

  1. Make your own personal branch from the previous tagged release. For instance, svn copy svn+ssh://{tags/bccd-3.2.1,branches/skylar/bccd-3.3.0
  2. Check out the new branch. If you already have a local check out of a similar branch, use svn switch new-branch-path instead.
  3. When you commit changes, make sure to note the ticket number in your commit in the form (#123).
  4. Merge changes into trunk as tickets are resolved, again taking note of each affected ticket in the commit message. NOTE: SVN 1.7 will stop merging when it encounters a conflict. You will have to resolve the conflict and then re-run the same merge to continue to subsequent changesets.
  5. When the time comes to merge your changes into a tag, the release engineer can merge all of your changes in the branch into the tag without needing to look at ticket history.
Personal tools