This page gives an overview as well as practical advice about Crystal Space source code management using our preferred Source Code Management (SCM) system - subversion.
If you're not familiar with Subversion (aka. SVN), please check the SVN Book and the Subversion FAQ.
Subversion is used to maintain the Crystal Space source code repository, which is following the usual convention of having:
A version is a coherent state of the software which is often identified using a version number, but is not the same as a release.
A revision is a single piece of change (aka. commit) applied to the source code repository using the subversion client.
The repository root URL is: https://svn.code.sf.net/p/crystal/code/
Apart the famous trunk which URL is: https://svn.code.sf.net/p/crystal/code/CS/trunk, Crystal Space uses branches for mainly 3 purposes:
The different branches can be browsed at: https://sourceforge.net/p/crystal/code/HEAD/tree/CS/branches/.
TODO
The first step as a Subversion user is to check out a working copy of the source code from the repository, be it the trunk or a specific version or branch.
As much as possible, please don't commit different unrelated changes in a single changeset, especially if you're working on trunk. Doing so might increase the difficulty of merging a needed change in a release branch.
If a changeset implies the change of some generated file(s), it is generally better to commit the regenerated stuff later, in a distinct changeset.
The svnmerge.py tool is now prefered over svn merge to merge changesets from one branch or trunk to another.
Not only is it useful to avoid merging changesets twice, but it also ease merging multiple changesets considerably.
It's usage implies that:
When committing after using svnmerge.py, please use the generated svnmerge-commit-message.txt as comment. For example, invoke:
svn commit -F svnmerge-commit-message.txt
TODO
TODO