Tutorial for the SourceForge Challenged

Hi All,
  This is my quick step setup guide, to getting SourceForge working on your Win32 system. A lot of the information I have here is based on Martijn Melenhorst's SourceForge Setup Guide .
Though this guide is quite comprehensive, I have found that the simplest  way of accessing Sourceforge is using TortoiseCVS , which is what I will be using in this tutorial.


Before we start

The tools we will need to get started are as follows...
1 copy of TortoiseCVS <http://www.wincvs.org/TortoiseCVS/index.html>
1 copy of   Putty-KeyGen <http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html>
1 SourceForge account !
1 hot cup of Patience.


Installation

Once you have downloaded TortoiseCVS , run the installation program.
Once TortoiseCVS is installed, copy Putty-KeyGen to the same directory that you installed TortoiseCVS to.


Environment Variables

TortoiseCVS requires a HOME environment variable to be setup up before it can be used effectively.

Key Pair Generation

NOTE : Only generate Key Pairs if you plan to actively develop on a particular  SourceForge project. If you do not plan to be an active developer and just want to download source code from SourceForge CVS, jump to the next section. Those of you who will be working on a SourceForge project, please read on.

In order to use SourceForge as an active developer, you will need to a SSH key pair.  SourceForge requires you to have a private and public key in order to Check-In any changes you may be making to a project.
Start PuTTY-KeyGen and generate a keypair with all default settings
Insert your e-mail address as the 'Key comment' (not necessary, but this is common practice)
Save the private keyfile to "<CVS HOME Directory>\.ssh\identity"
Save the public keyfile to "<CVS HOME Directory>\.ssh\identity.pub "
Copy the contents of the public key from the PuTTY KeyGen window and paste it into the textbox at this URL:
https://sourceforge.net/account/editsshkeys.php. This will upload your public key to SourceForge
It can take up to 6 hours for SourceForge to recognize your new SSH key!
At this point you just need to wait until this 6 hour delay has passed and just about the only thing you can do is Check-Out the CVS SourceCode anonymously ( See below ).
Make sure that you have informed the project administrator, that you wish to be a developer on that particular project, so that they can add you to the developers list.
If you are not added to the SourceForge project's developers list, you will not be able to Check-In changes you have made to the project source code.


Delphi Project Specifics
This is not really needed, but it saves everyone who wants to co-develop or stay up-to-date a lot
of work :
You specify a .cvsignore file, which WinCVS and TortoiseCVS will respect. The matches
specified in this file will be treated as non-CVS-project files. TortoiseCVS has one bad habit
with this file though: Adding new project files that should be ignored is still possible!

Go to the directory that contains the project, and add 1 file : .cvsignore
Windows Explorer won't allow you to name a file like this, so will need to use a DOS prompt and the 'Edit'
command for this. Or altenatively you could name the file something like t.cvsignore ( Which Windows Explorer allows ) and then from the DOS prompt you can type :
ren t.cvsignore .cvsignore

Insert this content into the file:

*.~*
*.dcu
*.bpl
*.dcp
*.cfg
*.dof
*.dsm
*.exe
tmp*

You can add other more project-specific matches to this list.


TortoiseCVS configuration

Open up Windows Explorer.
Right-click on the project directory in Windows Explorer
Select 'CVS->Preferences...' from the shortcut-menu
Go to the 'Quirky' tab
Uncheck 'Always recalculate home directory'
Press 'Ok'


Using TortoiseCVS
Before you start using TortoiseCVS, have some kind of Directory structure thought-out first. I have an "OpenSource" directory under which all the SourceForge projects exist. Planning a directory structure is even more important when you are starting your own project and which to upload a module.
 
NOTE : In the following examples, case is always important!
CVSAnonCheckOut.png
CVSUserCheckOut

As you can see, once you have everything set up, Checking code in and Out of a CVS repository is quite easy using TortoiseCVS .