Spikecluster SourceForge Instructions
- Create a SourceForge
user account. In the instructions below, you are assumed to be
logged into the sourceforge.net site with this account from a Win
2000/XP PC. For simplicity, they also assume that you are accessing
repository, although it is straightforward to substitute another
- Install Tortoise
CVS on your local machine and create a folder to use as a
'sandbox'. Enter this folder in the Included Folders field
of the Advanced tab of the Tortoise CVS Preferences. It
is also useful to deselect the Prune impty folders
option in the Policy tab of the Preferences (this can
prevent empty modules from becoming inaccessible).
- Install the complete
PuTTY package, including Pageant.
Setting Up SSH Access
- Generate an SSH-2DSA public/private key pair using PuTTYgen
and assign a passphrase.
- Save the private key in the directory containing the
Pageant executable. Name it, e.g., SourceForge.ppk.
- Go to your SourceForge Account Maintenance page
and scroll to Host Access Information. Upload the public
- Attempt to log into the CVS server (e.g., email@example.com)
using SSH. Although the server will not allow you to actually connect,
it will create a home directory for you on the SourceForge shell.
This only needs to be done once for any user account.
- When performing CVS operations, Pageant will allow secure access
to the SourceForge CVS server without requiring repeated manual logins.
To do this, start Pageant, right-click on the system tray icon and select
Add Key. Select your SourceForge private key and enter the
Creating a New Module via Tortoise CVS
A CVS module is a collection of source code files meant to be edited
together. They are stored and managed in a single folder on the CVS
server managing the project repository.
- Right click in the SANDBOX and make a new directory with
the name of the module to be created. Right click on this directory and
choose CVS->Make New Module.
- Enter the following CVSROOT:
- Confirm the name of the new module in the Module field and click
and click OK. If successful, a green check mark appears on the icon
for the module folder on your local machine.
- The newly created module will appear in the
SourceForge WWW CVS browser after a delay of upto a few hours.
It is, however, available for check out and use immediately after
- Sourceforge does not support the Fetch List button in Tortoise
CVS. Use the
Sourceforge WWW CVS browser to see a list of available modules.
Checking Out a Module via Tortoise CVS
Checking out refers to the act of obtaining local working copies of
the files in a module. If the files already exist on the local
computer and they only need to be updated to reflect any changes that
may have been made to the CVS copies, use CVS Update instead.
- Right click in the SANDBOX directory and click CVS Checkout.
Enter the following CVSROOT:
and enter the name of the desired MODULE.
- If a folder with the name MODULE already exists in the
SANDBOX, the CVS files from the repository for that MODULE are copied
to that folder. If no such folder exists, one is created before
copying files. In either case, the icon for the folder should show a
green check mark to indicate that it is managed by CVS.
Committing Files via Tortoise CVS
Committing refers to the act of saving changes made to local
copies of CVS managed files. If another developer has also modifed
the files since you last checked them out or committed them, you will
be asked to resolve any differences in the two versions.
To make a patch file recording changes to code without altering the
CVS repository, use CVS->Make Patch rather than
- If the icon for a file in a local CVS directory has a purple ?
mark overlaid, the file is not yet part of the CVS tree. In this
case, right click on it and choose CVS Add.
- If a file is part of the CVS tree but has been modified since it was
last checked out or updated, it will have an orange + mark. To merge
the local changes into the CVS repository, select all files that need
to be committed, right click and choose CVS Commit.
- Enter any desired comments and click OK. The icons of the
committed files change from orange + overlays to green check marks.
Releasing CVS Files via Tortoise CVS
Releasing refers to the act of removing local files from CVS
management. The released files are committed to the CVS repository
and are usually deleted, although they need not be.
- Right click on the module folder and select CVS->Release.
You will be asked whether the local files should be deleted. Note that
care is needed if you do not delete them, as they are no longer managed
by CVS and extra effort will be required to merge them back into the
Uploading File Releases
File releases are complete snapshots of a package made available for
general users. "Package" here means a self-contained subunit of the
spikecluster code. Releases must be created and named/numbered
manually as follows.
- Collect all of the files (.m, .fig, documentation, etc.) needed
for a user to install the code on a local machine and zip them into
a single file. Include the release number in the name of the zip file.
Place the zipped file at the root of your hard drive for easy access.
- FTP to upload.sourceforge.net and login as
anonymous with your email address as the password. Set the
FTP client to binary mode (bin on command-line clients).
- Change the current directory on the remote server to
/incoming and upload the release zip file.
- Go to the
Project Admin page and select Releases. Scroll down
to File Release Packages. If this is the first time this
package is being released, first enter a new Package Name at the bottom of
the page. Once a package has been defined, the release zip file uploaded
above can be added using Add release, entering release notes/details
and selecting the newly uploaded file. Note that there may be a delay of a
few minutes after the upload before the file appears on this WWW page.
Updating the WWW Page
The project WWW space (and upto 100 MB of storage space) are on the
UNIX shell server shell.sf.net and can be accessed via ssh using
the same USER/PASSWORD used to access a user account on SourceForge.net.
5 MB of personal
space for USER is located on this server at
while the 100 MB of project space is located at
and the WWW space aliased by http://spikecluster.sourceforge.net
The quotas are soft; i.e., they can be overrun temporarily.
To upload files to these directories, use SCP/SFTP to securely copy files
Screen shots must be JPG, GIF or PNG format files of ≤ 300 kB,
between 150x150 and 640x480 (width x height). 6 screenshots of this
size are allowed project via this mechanism.
- Go to the
Project Admin page on SourceForge and select Screenshots.
- Image files meeting the above specifications can be uploaded
from this page. Screenshot files can also be reordered and deleted
Code Revisions and Version Numbers
- Every file in a CVS repository carries a revision number which
is incremented every time that file is committed (the full revision
number is actually 1.###, but ordinarily only the ### part changes.
This process happens automatically every time changes are
- A file or collection of files can further be tagged at
any given time to provide a development snapshot. This is
accomplished in Tortoise CVS by right-clicking on the file(s) and
selecting CVS->Tag. Modules should as a rule be tagged
when they are included in a file release to allow easy recreation of
the code state for any release.
- The change history for text files is summarized (by Tortoise
CVS) using the CVS->History, CVS->Revision Graph
and CVS->Annotate commands. The History and
Revision Graph commands show the time, author and comments
for each revision made to a file. The Annotate command
shows the revision and author responsible for each line in the
- Particular revisions/tags (and branches; see notes below) for
any file or collection of files can be retrieved using CVS->Update
- CVS Branch allows more complex code development paths.
Backing Up Project Files
Three sets of files should be backed up: the CVS repository, file
releases, and project directories. Restoring data from these backups is
described in the SourceForge documentation.
- The entire CVS repository can be backed up by saving a copy of
the nightly tarball at:
This file is updated once a day when write activity occurs in the
- As file releases are not managed by SourceForge, local backups
should be saved when they are uploaded to SourceForge.
- The project directories (including www space) can be backed up
by ssh'ing to shell.sf.net and typing:
tar -cvzf spikecluster_project.tar.gz /home/groups/s/sp/spikecluster/
The resulting file can be copied off of the SourceForge shell via
CVS (Version Control for Source Code)
Guide to the File Release System
SSH Key Generation and Usage
Data Backup and Restore
Project Web, Shell and Database Svcs
CVS Client: TortoiseCVS with PuTTY
Tortoise CVS with Sourceforge
CVS Client: WinCvs with PuTTY
Matlab Source Control Integration
Matlab & CVS
PushOK CVS SCC Proxy