1. Summary
  2. Files
  3. Support
  4. Report Spam
  5. Create account
  6. Log in

WinCvs Overview

SourceForge.net provides support for a number of CVS clients, including WinCvs. WinCvs is a CVS client that runs on the Microsoft Windows platform. WinCvs is a stand-alone application, unlike TortoiseCVS. WinCvs is an advanced CVS client that provides an expert level of control over CVS operations. Beginners may find TortoiseCVS easier to use.

How does WinCvs differ from other Windows-based CVS clients? WinCvs is designed to allow for maximum power and flexibility for the advanced CVS user. WinCvs provides access to all CVS operations from an interface that is easier to use than the command line CVS client. WinCvs is designed for interactive use and not for scripting the operations of CVS. Most users new to CVS will feel more comfortable using TortoiseCVS. If you desire a command line CVS client or want to automate your CVS operations, the command-line CVS client included with Cygwin is your best choice.

Getting WinCvs

SourceForge.net staff recommend the use of the most recent WinCvs release marked "stable". Stable releases of WinCvs may be downloaded from the CvsGui project on SourceForge.net.

Installing WinCvs

To install WinCvs, read these instructions fully, then do the following:

  1. Download and unzip the WinCvs zip file.
  2. Read and follow the installation instructions.

Configuring WinCvs for Developer SSH Authentication

Developers should follow these instructions to configure read/write access to their project's CVS repository. You must be an administrator or project member with CVS access permissions to be able to access CVS in this manner.

If you are not a project member or administrator with CVS access permissions, you may obtain read-only access to the repository via anonymous pserver authentication, but cannot use the instructions presented in this section.

If you have not already done so, you should install the WinCvs software.

Before configuring WinCvs, configure an SSH key for authentication to the CVS server.

The following settings should be configured to use WinCvs with SSH authentication. Be sure to load up the pageant program with your SourceForge.net CVS/Shell SSH key prior to attempting any connections. Without this program open with the proper key loaded, your CVS attempts will fail.

The only information required to perform operations on your repository with WinCvs is the 'CVSROOT:' string. This string requires knowing the following information before you can form it, and it is specific to each project and developer for the project. The list of information to get, includes:

  • USERNAME: Your SourceForge.net username, the same one used to login to the SourceForge.net website.
  • PROJECTNAME: The Project UNIX name for the project whose CVS repository you want to access. The WinCvs client is managed under a project with the UNIX name of 'cvsgui', for example. All project UNIX names are lower case. The project UNIX name can be located on the summary page for the project (https://sourceforge.net/projects/cvsgui/ for example).

The generalized format for the CVSROOT string looks like:

:ssh:USERNAME@PROJECTNAME.cvs.sourceforge.net:/cvsroot/PROJECTNAME

Or, for the USERNAME bob and the PROJECTNAME cvsgui, the string looks like:

:ssh:bob@cvsgui.cvs.sourceforge.net:/cvsroot/cvsgui

This setting should be checked any time you are working on a new project. Any time the project you are working on changes, you want to make sure you are checking the changes into and modifying the files in the proper project.

The CVSROOT string will be requested when you select an operation such as checkout or import from the WinCvs menu, in the 'CVSROOT:' field. You will manually enter it directly into the field, formed as described above. We recommend against using the ellipses located next to the 'CVSROOT:' field to generate the CVSROOT string using the wizard, it can create undue confusion for a novice CVS user.

The first time you try to connect, the WinCvs Alert window will appear. The host key fingerprint for the CVS server will appear in the bottom pane of the WinCvs application, you may have to scroll up to see it. You should compare that value with the one in the SSH Host Key Fingerprint Listing. If the fingerprints match, click on the 'Yes' button; otherwise click the 'No' button and notify SourceForge.net staff.

If you are asked for a password, SSH key configuration wasn't completed properly, Pageant is not running, or your SSH key has not been loaded in to Pageant. SSH key authentication must be configured before CVS access via SSH will function properly.

Configuring WinCvs for Anonymous pserver Authentication

Read-only access to any project CVS repository may be obtained using anonymous pserver-based authentication. Working copies generated in this manner cannot be used to perform write operations (a fresh checkout via SSH authentication would be needed by a developer who wishes to make repository changes). A SourceForge.net user account is not required to access repositories via anonymous pserver authentication.

The only information required to perform operations on your repository with WinCvs is the 'CVSROOT:' string. This string requires knowing the following information before you can form it, and it is specific to each project and developer for the project. The list of information to get, includes:

  • USERNAME: anonymous (the username for anonymous pserver authentication is always anonymous).
  • PROJECTNAME: The Project UNIX name for the project whose CVS repository you want to access. The WinCvs client is managed under a project with the UNIX name of 'cvsgui', for example. All project UNIX names are lower case. The project UNIX name can be located on the summary page for the project (https://sourceforge.net/projects/cvsgui/ for example).

The generalized format for the CVSROOT string looks like:

:pserver:USERNAME@PROJECTNAME.cvs.sourceforge.net:/cvsroot/PROJECTNAME

Or, for the USERNAME anonymous and the PROJECTNAME cvsgui, the string looks like:

:pserver:anonymous@cvsgui.cvs.sourceforge.net:/cvsroot/cvsgui

These configuration settings are the only settings needed in order to access a repository for read operations (checkout, update). You should not be prompted for a password when accessing a repository in this manner; if you are prompted for a password, contact SourceForge.net staff for assistance after you have verified that your configuration settings match those provided here.

Configuring WinCvs Around a Firewall

Many users are behind firewalls or proxy servers which block traffic on the TCP ports normally used to access our CVS servers (22 for SSH authentication). We provide SSH access to our CVS servers using port 443 (normally SSL-encrypted HTTP web traffic), to eliminate some of the problems users encounter.

In some cases, proxies or firewalls modify the packets sent on these ports as well, which is not something that can be overcome. For these cases, you should contact your Network Administrator or ISP for further assistance.

These instructions should be followed only if you know you are behind a firewall or proxy which is blocking outbound traffic on port 22.

If you are not a member of the project that you wish to connect to, instructions on how to configure access via pserver authentication immediately follow the instructions on configuring developer SSH access.

For developer access to repositories via SSH, from behind a firewall or proxy, install WinCvs and follow these alternate instructions for configuring the CVSROOT string. First, you must gather the following information (this information is different than that in the developer configuration section, but you should still read it first.):

  • USERNAME: Your SourceForge.net username, the same one used to login to the SourceForge.net website.
  • PROJECTNAME: The Project UNIX name for the project whose CVS repository you want to access. The WinCvs client is managed under a project with the UNIX name of 'cvsgui', for example. All project UNIX names are lower case. The project UNIX name can be located on the summary page for the project (https://sourceforge.net/projects/cvsgui/ for example).
  • PORT: 443

The generalized format for the CVSROOT string looks like:

:ssh:USERNAME@PROJECTNAME.cvs.sourceforge.net:443/cvsroot/PROJECTNAME

Or, for the USERNAME bob and PROJECTNAME cvsgui and port 443, the string looks like:

:ssh:bob@PROJECTNAME.cvs.sourceforge.net:443/cvsroot/cvsgui

If the standard service ports (TCP 22 for SSH, TCP 2401 for pserver) do not function properly due to a firewall or proxy, and the above workaround also does not work properly, please contact your network administrator or ISP for further assistance.

Using WinCvs

Basic CVS usage: CVS is a complex tool, designed mainly for developers. Though graphical clients like TortoiseCVS or WinCvs ease the learning curve significantly, it is still important to understand the basics of how CVS works before deciding to use it for your project. Basic information about CVS may be found in the following places:

The WinCvs -- Daily Use Guide provides a good overview of the available commands in WinCvs and how to use them. It is highly recommended that you read that document first, before attempting to use WinCvs for your development activities.

WinCvs uses a Windows menu-style interface for its operations. Most of the operations that one would perform with WinCvs are located on the Admin or Remote menu options ('Create a Module' i.e. import, checkout and update, for example).

Common read operations (available to everyone):

Common write operations (available to developers via SSH authentication):

Configuring a Local Test Repository

To create a test repository to work from, you must first initialize a new repository. This is done for you automatically when using the SourceForge.net provided repository, but you must do this to test operations on your local workstation, which we strongly advise you to do. This enables you to get a feel for how CVS works prior to doing operations using the SourceForge.net provided repository.

To create a new repository:

  1. Select 'Create a new repository...' from the 'Remote' menu option in WinCvs.
  2. Enter the local CVSROOT string into the 'CVSROOT:' field. If you want it to go to 'C:\cvsroot', enter ':local:C:\cvsroot' into the 'CVSROOT:' field.
  3. Click the 'OK' button to initialize the local repository.

This directory will contain the contents of the CVS repository and shouldn't be manipulated directly. Instead, you will check content into this path, just like you would with the SourceForge.net repository. To work with it, you would use your working copy which you must now import into this repository to create a module. The CVSROOT string for any operations on this local repository will always be as specified in the prior initialization operation.

Please refer to the usage instructions for specific commands and operations that can be used with this repository.

If you want to start fresh with a new repository, delete the CVSROOT (C:\cvsroot) and start fresh, creating a new test repository.

Troubleshooting Authentication Problems

SourceForge.net provides CVS access both to project members (developers) and to the community (non-developers).

Am I a developer? Developers are listed as members of the project. Developers access the project CVS repository via SSH authentication, allowing them to perform write operations. Users who are not a member of the project team must use anonymous pserver-based authentication to access the repository; they cannot use SSH.

Password for anonymous access: When using anonymous pserver-based authentication, no password should be entered; the username should be set to 'anonymous', not your SourceForge.net username.

Write operations via pserver authentication: pserver-based repository access does not permit write operations. Write operations may be performed using SSH authentication as a developer. A fresh checkout of the module into a new directory (using SSH authentication) will resolve the problem.

Developer use of passwords: Project developers use SSH keys to authenticate against the project CVS servers. Use of passwords for developer CVS authentication will be deprecated in the near future.

Issues with SSH keys: Troubleshooting of SSH key usage is covered in our guide to SSH key generation.

Developer CVS access: It is within the discretion of the project administrator to grant CVS write access to project developers. These permissions are shown on the summary page of the Project Admin pages (which may be accessed by all project members). Those developers who have been granted CVS access by the project administrator should access the repository via SSH authentication. Developers who have not been granted CVS access must access the repository via anonymous pserver.

WinCvs Support

WinCvs is a fully-supported means to access SourceForge.net project CVS repositories. Issues related to the WinCvs software should be directed to the WinCvs project team. Issues related directly to using WinCvs with SourceForge.net should be directed to SourceForge.net staff. Please use the following instructions for issue submission.

Support for WinCvs software bugs may be obtained from the CvsGui project on SourceForge.net. Before reporting issues to the CvsGui team, you are encouraged to review the following:

SourceForge.net staff provides support for usage issues pertaining to the WinCvs client. Please collect the following information specific to this client and then follow the instructions provided for CVS support:

  • Generate screenshot images of your configuration settings, and of the error message or issue you have encountered. Screenshot images (or zip archives containing multiple images) may be attached to Tracker items when issue reports are submitted. The screenshots should be in JPEG (.jpg or .jpeg), GIF (.gif) or PNG (.png) format. Please do not provide them in BMP (.bmp) format.
  • Copy the output of the bottom WinCvs pane and include it (either in the body of, or as an attachment to) your Support Request or bug report. The 'Save Output As...' option on the File menu will allow you to save the contents of that pane to a file.

Getting Help