iaanus.com

abCVS frequently asked question

Installation and use

Ok, I have a valid CVS installation, I download and installed abCVS. Now, how do I use it?

Launch CodeWarrior and open the project. Then

  1. Choose the Edit/Version Control Settings to show the VCS settings panel.
  2. Turn on Version Control and select abCVS in the "method" list box. If you do not see abCVS in the list box, then abCVS is not correctly installed, please refer to the installation section.
  3. As this version of abCVS can access a CVS repository only with the "local dir" method, the Username is ignored (you can type anything you want, or just leave the box blank).
  4. [optional] To avoid the nuisance of re-entering the Username and Password every time you load your project, you may want to select the check boxes "Connect on open" and "Remember password", leave "Always show login dialog" de-selected.
  5. Select the correct database path, i.e.: the CVSROOT directory of your repository. You may specify either a local directory or a network shared directory.
  6. Select the project path as the "Local path". I use to specify the path as being "Project relative", but its a matter of tastes.
  7. In the "abCVS Settings" page, fill the box "CVS executable" with the path to the file "cvs.exe". If you use WinCVS, it should be in the WinCVS directory. If the file cvs.exe can be reached through the PATH environment variable, then abCVS will automatically fill in the box for you, otherwise you can use the button "Choose..." to browse for the correct file.
  8. Press Save and close the dialog

That's it! The VCS menu will appear and you may start working with CVS right from the IDE.

When I add a file to the repository I get the following error message:
“cvs [add aborted]: there is no version here; do 'cvs checkout' first”.

You do not have a correctly "checked-out" module. This administrative operation cannot be performed through abCVS; you must call cvs.exe directly or use WinCVS. Please consult the CVS documentation, in particular all those sections regarding the commands import and checkout.

When I commit a file to the repository I get the following error message:
“cvs [commit aborted]: cannot specify both a message and a log file”.

You are using the cvs.exe executable file which has been distributed with WinCVS 1.1. The bogus message is caused by a bug during the parsing of the command line. Please obtain a different version of cvs.exe. A list of tested distributions is available here.

I want to connect to a remote CVS database, but when I fill in the VCS settings, CodeWarrior complains with the following message:
“Version Control was unable to resolve the path to the database, please check your preferences”

This problem is caused by the CodeWarrior VCS panel and not by abCVS. It seems that the Metrowerks engineers did not consider the possibility to have a non-local database path (see also the following FAQ). Therefore, the Database Path of the VCS panel must be filled in any case with a valid local path in order to have the VCS settings accepted. Of course, if the Access remote CVS server in the abCVS panel is set, the Database Path will be completely ignored in favor of Server and Path.

What's the "Try to mount shared volume" checkbox in the VCS settings panel?

It has meaning only for the Mac-hosted CodeWarrior, but the Metrowerks engineers forgot to take it out in the Windows version, where it has no function.

The cvsgui protocol (was: the CVS patch)

What is it?

CVS is a command line application, it therefore writes messages on the standard output and expects information from the standard input. However, when spawned from a GUI application, this way of exchanging information presents some problems. To solve this problems, recent distributions of CVS provide what has been called the cvsgui protocol.

When is it needed?

In fact abCVS uses the cvsgui protocol only in one case: when logging in to a remote repository with the :pserver: access method.

Why is it needed?

Because, in the original distribution, the login command is implemented by accessing directly the keyboard, which is good when cvs.exe is launched in interactive mode, but not as good when that is done throught a GUI (as abCVS do). As a non-interactive process has no access to the console keyboard, such process will hang forever.

Wasn't there a patch needed?

Since version 0.8a a patch is no longer needed. Previous versions relied on an abcvs-specific patch to cvs.exe in order to obtain what is already provided by the cvsgui protocol, well, almost. In fact the patch also modified the output of the edit and unedit commands that would allow abCVS update the progress bar correctly. Without the patch, CVS does not produce any output during those operations, so there is no way to know the operation progress; in this situation abCVS still works, but the progress bar won't be updated. For those who wants their progress bars updated, the relevant part of the patch is available on request.