NOTE: this port is still in progress and should not be considered a finished product. Use at your own risk. __________________________________ MacOS / Concurrent Versions System (CVS) Current Mac port version: d5 Mike Ladwig __________________________________ This is a port of the CVS client (1.6.5 ) to MacOS. 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 1.6.3 server resides. This is a really dumb thing to do if you have any security concerns. I don't, so I can live with the problem. 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'. * 'cicily' must have the 'services' file (included) located in the "Preferences" folder. You must rename this file to be 'sys/services'. 2. Usage Well, the interface is about as ugly as it could be. When you launch MacCVS, 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. I've been keeping the basic command line ("-d maggie@twinpeaks:/projects/repository/eM2") in the Mac Note Pad, and just cut-n-pasting it into MacCVS, then adding the command -specific ("checkout commonFiles") stuff manually. On "checkin" or "commit" operations, use the '-m ' command line option. 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. To change the file type and creator of files that MacCVS creates, you need ResEdit 2.1.3. Edit the MacCVS file, and open the GUZ(sp)I resource and make the changes you want. 3. Building MacCVS I have included the the two MacCVS project files as a binhex stuffit archive ('maccvs.projects.sit.hqx'). You will also have to extract the MacCVS resource file (maccvs.rsrc.sit.hqx). **** Note for the intrim release (pre- cvs baseline integration): You must apply **** the maccvs-165.patch file to the base cvs 1.6.5 distribution with GNU patch. **** Hopefully this patch will be applied and part of the base distribution soon, **** it has not yet been accepted by the cvs maintainers. If you are building MacCVS for an Open Transport system, you will need to work around a problem between OT and GUSI: Open the project file for GUSI (GUSI.PPC.µ). In the file "GUSITCP.cp", find the ~TCPSocket (destructor) method. Change the line: pb->csCode = TCPClose; to: pb->csCode = TCPAbort; Recompile GUSI. You may also have to fiddle with the access paths. I have a "Projects" folder, where I have the cvs-x.y.z folder and the CWGUSI folder. 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. 5. Pre mainstream distribution MacCVS History Wed Jan 10 11:40:32 1995 Mike Ladwig * CVS Code base updated to cvs-1.6.5 1/8/95 snapshot Fri Dec 27 14:20:12 1995 Mike Ladwig * Cleanup of rcmd code, removing inappropriate tests * CVS Code base updated to cvs-1.6.3 12/27/95 snapshot * Again fixed(?) binary/text file handling. * OT problem traced to GUSI - OT bug. Corresponding with Matthias. Fri Dec 08 12:39:22 1995 Mike Ladwig * Fixed problem with 'stat' emulation * Used better GUSI resource template so file type/creator was available Thurs Dec 07 16:13:09 1995 Mike Ladwig * Port cleanup for inclusion into main cvs distribution * Fixed(?) binary file handling * Better SIOUX feedback * Updates only via whole files (no '-u' to update) Wed Nov 29 09:33:16 1995 Mike Ladwig * Initial port of CVS 1.6.1 snapshot 11/14/95 * Requires CW GUSI 1.6.4 and CodeWarrier 7 * 68k version is essentially untested, due to lack of a 68k machine * 'release' doesn't work, due to cvs implementation approach * Tons of obvious "TODOs", but at least the heavy stuff is done