Using subversion
From CSP
Subversion
The CSP source code is stored a Subversion repository. Subversion is a replacement for CVS that fixes many of the worst shortcomings of CVS. If you aren't familiar with version control systems, the following quote from the Subversion documentation may be helpful:
Subversion is a free/open-source version control system. That is, Subversion manages files and directories over time. A tree of files is placed into a central repository. The repository is much like an ordinary file server, except that it remembers every change ever made to your files and directories. This allows you to recover older versions of your data, or examine the history of how your data changed. In this regard, many people think of a version control system as a sort of “time machine”.
The CSP Subversion repository is hosted at sourceforge. In addition to Subversion access, you can also browse the repository by visiting http://csp.svn.sourceforge.net
Read access
To check out a copy of the source code, you'll need a Subversion client. Most GNU/Linux distributions include Subversion, so you may already have a client installed. If not, you can get sources and precompiled packages of the latest version directly from the Subversion downloads page (http://subversion.tigris.org/project_packages.html). Under Windows you will likely have to download and install client software. Popular choices with GUI interfaces are TortoiseSVN (http://tortoisesvn.tigris.org/) and RapidSVN (http://rapidsvn.tigris.org/). A more complete list of third-party clients can be found at tigris.org. If you just want a recent copy of the code without the overhead of using Subversion, try downloading the current svn revision as tarball (http://csp.svn.sourceforge.net/viewvc/csp/trunk.tar.gz?view=tar).
If you are using the basic command-line Subversion client, the following will check out the most recent version of CSP:
svn co https://csp.svn.sourceforge.net/svnroot/csp/trunk/csp
You can run svn help commands to learn more about the svn client, or browse the online documentation for much more detailed information.
To check out the code using TortoiseSVN, in windows explorer right click on the background in an empty directory and select "TortoiseSVN" -> "Checkout..." to bring up the Checkout dialog. As shown below, enter https://www.zerobar.net/svn/csp/trunk/csp in the "URL of repository" field and leave all other settings unchanged, then click OK to download the source.

Write access
Although you can freely modify your local copy of the source code, you must be a member of the development team in order to submit changes back to the repository. Please post a message to the developers forum if you would like write access to the repository.
The following are some basic guidelines for making changes to the repository:
- If you are new to the project, you should not do any Subversion admininistrative operations (creating tags/branches, merging branches, etc) without approval from one of the project admins. Ask on the forums if you are unsure.
- Comments when checking in files are mandatory, and you should religiously record your changes in the CHANGES.current file. A simple approach is to add a new entry in CHANGES.current, and then paste it into the comment field when submitting your change. Always check in CHANGES.current with the rest of your change.
- Related changes should be grouped together in a single submission; do not submit files individually. The subset tool (CSP/tools/subset) makes this particularly easy under GNU/Linux.
- CSP is a cross-platform project. If you are concerned that your changes may cause problems on another platform and are unable to test your changes on that platform, please contact another developer who can test your work (see Platform independence). Many of the cross-platform pitfalls have gone away with newer versions of gcc and msvc, but problems of this nature still occur frequently.
- If you add or remove files from the build, remember that this must be done in both the SConscript and the Visual Studio project file. If you feel very comfortable with the formats of both of these files, you may edit them by hand (and of course record these changes in CHANGES.current). If not, add a special note (starting with "==>") in the CHANGES.current file to inform others of the needed changes. For example, "==> LINUX USERS: add foo.cpp and bar.cpp to the build." Conversely, whenever you notice that the build breaks, check recent entries in the CHANGES.current file for possible instructions of this sort. If changes to the project file on your platform are required, please make and test the changes, then check the revised project file into the repository.
- Do not add binary files to the repository without approval.
- When in doubt, ask on the forum.

