__________________________________
MacOS / Concurrent Versions System (CVS)

CVS version: 1.8.6
Mac port version: 2.31

Mike Ladwig <mike@twinpeaks.prc.com>
__________________________________

This is a port of the CVS client to MacOS.

For updated information on MacCVS, or CVS on the Macintosh in general,
see the CVS web sites at:

    http://www.cyclic.com/
    http://www.loria.fr/~molli/cvs-index.html

In particular, there are a lot of newer clients for the Macintosh
which are probably better than MacCVS 2.x, which is what is here.

1. Setup

In order to use this, you must be willing to consider the Macintosh 
a trusted host to the UN*X box where the CVS server resides.
This is a really dumb thing to do if you have security concerns.
I don't, so I can live with the problem.  Until there is reasonably
trustworthy security in MacOS, there is not a good solution.

For the following example, "twinpeaks" is the repository host, and
"cicily" is the Macintosh client.  "maggie" is the login account on
twinpeaks 

* 'twinpeaks' must have a login account which trusts 'cicily'. For
me this is 'maggie', and 'maggie' has a .rhosts file that contains
the line 'cicily joel'.

* 'cicily' must have the Sharing Setup control panel configured
to have "Owner Name" set to "joel" and "Macintosh Name" set to
'cicily'.

If (and *only* if) you want to use a non-standard port for the shell
connection (the normal port for such connections is 514), then you
must copy the included 'services' file to the "Preferences" folder in
your System Folder.  You must rename this file to '/etc/services'.


2. Usage

MacCVS can either be launched from the finder or via AppleEvents.

Do Command: Execute a CVS command
	Do Command  string  -- Command to execute
		[Mode  AE/File]  -- Mode (AE, File).
		[Environment  string]  -- Environment variables.
		[Filename  string]  -- Output file path.
		[Pathway  string]  -- Starting pathway.
		[NoLineBuffer  boolean]  -- if true, send each result line as separate AE.

The enclosed MacPerl script (AE_example.pl) provides all the information
necessary to roll your own MacCVS front end.  In order to test code in the
AE_example.pl script, you must have MacPerl 5.0.7r1m and
MacPerlToolbox_10Apr96 (or later).  The fragments make use of the new
Toolbox interface, and plain MacPerl will not work.

The AE support in MacCVS does not (yet) provide for getting user input (e.g. log
messages).  Make sure you provide that info via a file directive or "-m".

If you launch MacCVS from the finder, it allows you to enter the command
line and redirect the output of CVS to the screen or to a file.  If you send it
to the screen, you can choose to save it to a file when you quit.

Due to the strange way it is implemented in CVS, the 'release'
command does not work.  Tell me if fixing this should be a priority.

Gzip compression works if the server supports 'Gzip-stream'.  This support was
added to the CVS source on July 12, so you need cvs-1.8.6 from that date or newer.

Due to the braindead way I worked around a problem in the CodeWarrier ANSI library,
you can't have file names on the Macintosh longer than 21 characters.  If I don't see
a fix from MetroWerks soon, I'll devise a better workaround.

To change the file type and creator of files that MacCVS creates, you
need ResEdit 2.1.3.   Edit the MacCVS application, and open the GUZI resource
and make the changes you want.


3. Building MacCVS

The files MacCVS68k.sit.hqx and MacCVSPPC.sit.hqx are CodeWarrior
project files for building the 68k and powerpc versions of CVS,
respectively.  As the filename implies, they are binhex'd stuffit
archives.

I have a "Projects" folder, where I keep the cvs folder and the CWGUSI folder. If
you have a different arrangement, you will need to modify the access paths in
"preferences" in order to find GUSI include and library files.

You will need CodeWarrier 9 and GUSI 1.7.2.  I have a report of a successful build
under MPW, but don't support it directly.

There are problems with the CodeWarrier Plum-Hall ANSI libraries and
CW9 compilers that I have worked around.  Certain failure and exit
modes (most nobably, exiting after help and usage commands) trigger
the problem, which manifests itself as the DONE flag not being set in
result AppleEvents, and loss of the last data packet.  Metrowerks has
reproduced the problems, and hopefully will have a fix soon.  (Note:
this should be fixed, without needing metrowerks changes, by
SYSTEM_CLEANUP changes of October 28; awaiting verification that it
really is fixed).


4. Feedback

Please tell me how this works for you (criticism, praise, flames, etc.).
Any ideas for improvements, stuff for the 'README.MacOS' file, or
anything else would be appreciated.
