Using TortoiseCVS with http://eeg.sf.net

This short how-to will help you download and keep updated on the project files at http://eeg.sf.net/. In about 5-10 min, depending on your internet connection, you will have a working installation of tortoiseCVS and a complete copy of any eeg.sf.net project files. Although CVS provides many levels of sophistication for project development, you can use the basic functions of CVS to manage your files, even if you never plan to develop any files on the project! I hope you enjoy the simplicity and efficiency of using tortoiseCVS!

Collaboration on an open source project often involves many people, in diverse locations, writing similar or complementary project code at the same time. One way to do this, including concurrent edits on the same file, is to use CVS, the Concurrent Versions System. All the code files are stored on a central CVS repository, located on a central file server, available on an intranet or the internet. Developers use a CVS program to connect to the server and download or upload files. A great CVS program for Windows is TortoiseCVS.

Get TortoiseCVS

At http://www.tortoisecvs.org, download the current version. Run the setup wizard and you will soon have TortoiseCVS hooked into Windows Explorer (after you reboot the system).

Download the current project files

TortoiseCVS works right within Windows Explorer. Start by making a folder on your computer where you want to keep the project files (e.g., MyDocuments\matlab\). Open this folder and right-click to view the context menu - you will discover that TortoiseCVS adds some items to the right-click menu - now choose CVS Checkout.



The Checkout Module dialog box appears (see below). Paste the following text into the CVSROOT field:

:pserver:anonymous@eeg.cvs.sf.net:/cvsroot/eeg

This will fill many of the GUI fields automatically. In the Module box at the bottom, type bioelectromagnetism. (The modules to choose from are listed as root folders on the ViewCVS page. Please note that the 'eeg_toolbox' and the 'mri_toolbox' modules are no longer in active development, because all of their project files are now integrated into the 'bioelectromagnetism' module.) With the dialog boxes filled, you can now click OK to download the project! (You should get a warning about using an empty password, which you can ignore.) Just before you do that, take a quick look at some notes below on those other config tabs.



Revision: At present, there is only one revision, the HEAD branch of the CVS repository. In future, there may be alternative RELEASE branches in the CVS repository and the download instructions will indicate the tag for the latest RELEASE. In that case, you may need to specify the RELEASE branch TAG name. (CVS provides options for developers to take snapshots or branches of their repository. The main line or trunk of the development project is always the HEAD branch. Most often, branches are used to create snapshots of the repository for specific public releases. The eeg.sf.net project does not need this level of sophistication at this time.)



Options: A useful option is to change the "checkout" into an "export". This is useful for anyone who wants a static copy of the project, without any further CVS management of this copy (see below on the facility to update the project using CVS). Although CVS will not manage or track any files in this export copy, it is still possible to update because you can always delete all the files and export the project again, at a later date. For most users, the "checkout" option will be the preferred method.



TortoiseCVS makes a subfolder for every folder in CVS and downloads all of the the project files. In Windows Explorer, TortoiseCVS marks the folders and files with green checkmarks because they are both on the server and on your computer (unless you use the 'export' option, see comment above). You can move and rename this folder without breaking its connection to CVS. Never delete the folders called 'CVS' because they contain all the management information for CVS. If you do that, it will break the CVS connection to the repository.



Keep your copy of the code current

You've installed TortoiseCVS, and had it download the project files. But that was yesterday! The project developers have changed some of the project files and uploaded more files (to get detailed email notification about these changes, subscribe or view the archives on the eeg-developers list). So now the copy on your hard drive isn't current. This is how to solve this problem with TortoiseCVS. In Windows Explorer, right-click the 'bioelectromagnetism' folder and choose CVS Update. Tortoise CVS will update your copy - it will update old project files (unless you changed them) and download new project files from the CVS server.

What happens when someone edits a file?

Here's what the icon colors mean.

 Unmodified (Green)
This file is the same on the CVS server. If you download all the source code, never edit any of it, and click CVS Update every few days, all the files will stay Unmodified.

 Modified (Orange)
If you edit a file, it will change to Modified. It's still safe to right-click and choose CVS Update. TortoiseCVS won't eliminate your changes. It will update all the Unmodified files and leave your Modified file alone.

 Conflict (Red)
You changed this file, and it also changed on the server. If a developer updates a file that you have already modified, and you want to check it into the CVS repository, then your CVS file will not get checked in. It will be marked Conflict. At this point, it's your job to merge your changes with the changes from the server (you had better talk to the other developer(s) who have modified that file).

Bugs, suggestions, and active contributions.

Please send email to eeg-users@lists.sf.net with any bug reports or suggested changes for the project tools. If you really want to actively develop the tools, please request developer access to the CVS service so you can checkin your changes (you will need to setup an account on sourceforge). Although active development is not trivial, it is not impossible.