:: MacCVSClient :: User Guide

MacCVSClient's preferences dialog consists of various panels which can be selected through a popup button at the top of the window. We'll go through them one by one, skipping the first one, as it has it's own chapter Login Profiles in this manual.


Export and Import Translators


When a "data fork only" file (see CVS Add and Storage Formats) is committed the type/creator information is not stored in the repository. Now suppose somebody else has checked in files and you want to check them out. You surely would prefer an automatic way to get the file types back.

MacCVSClient's Export Translators can help you with this. Export Translators define how files are treated on their way out of the repository. This includes when being exported, checked out and upon update.

If you want to add new files to a module or want to import a module into CVS the very first time, you have to set the files' Storage Format and Keyword Substitution options correctly.

The Import Translators can help you to automate this process to an extent that minimizes errors and bad files in the repository. Import translators define how files are treated on their way into the repository. This includes when being commited, added and imported.

To keep things easier, Export and Import Translators for one single kind of file can be melted into a single combined Import + Export Translator. Here's how it all works.



For an export translator you specify both file type and creator codes for a file name mask. This establishes a mapping of that file name mask onto the file type and creator pair. If during CVS check out or CVS update this mask matches a received file, MacCVSClient assigns the corresponding type and creator codes to the file.

For text files, you can also choose between UNIX and Classic Mac OS style line endings (this setting is ignored in non-text files). In this context, non-text files are files which have been added to (or imported into) the repository with the -kb keyboard substitution option ("Keep Old Keyword String + Inhibit CR/LF Conversion") or files in a storage format other than "Data Fork". See also CVS Add and Storage Formats.

If type (or creator) of a translator are set to *, no type (or creator) code is assigned when the file is created. You probably don't want to do this in Classic Mac OS, but in Mac OS X this setting is useful as here the file types are determined by file name extensions.

Examples of creator and file type values of a number of applications:

Mask Creator Type Description
*.[chly] CWIE TEXT all files with the extensions .c, .h, .y, and .l will be CodeWarrior text files
GIFf Fireworks
*.html DmWr TEXT Dreamweaver
*.shtml DmWr TEXT
*.txt ttxt TEXT .txt files are SimpleText (there is no rational reason to do this)
* R*ch TEXT all other files are interpreted as text fils by BBEdit

You can use standard UNIX file name patterns including wildcards * and ? as well as the [] construct in file name masks.

The mapping mechanism used for import translators differs a bit from the above. Here MacCVSClient tries to match a file that is added to a module or imported into the repository against the combination of file name pattern, file type code, and file creator code. If all this matches, the given keyword substitution and Storage Format options are assigned to the file.

To specify a "matches all" file type or creator code, enter a single asterisk ("*") in the type or creator input field(s).

There are two ways to add translators to the list:

  • You type them into the text input fields by hand, set the other details and press the "New" button.
  • You drag-and-drop a file from the finder into the translator list. The dropped file's type, creator, and name are entered as they are. Very often you would now want to fix the file's name to make it a real pattern. Also the other translator details need to be set as required. Then press the "Change" button to commit all manual changes you have done after dropping the file into the list.

Note that the "New" and "Change" buttons are inactive, if none or more than one item in the translators list is selected.

To remove an item from the list, select it and press the "Delete" button.

To e.g. share translators amongst team members, you can copy the items from the translators list and then paste them as text into any application. This way, they can be emailed around the team or you can post translator lists on your intranet or web page and share them that way. The textual representations can then easily be pasted back into translator list preferences.

Text drag-and-drop is supported as well, i.e. you can drag the selected items from MacCVClient's translators panel into BBEdit or Mail. Dragging them into the finder will create a standard text clipping file. Dragging translators in text form into the translator list view will insert the translators there.

Here is an example of the textual representation of translators:

# Start translator clipping
2,Im + Ex,Unix,,DF,CWIETEXT*.[ch]
2,Im + Ex,,-kb,DF,CWIEMMPr*.prj
2,Im + Ex,,-kb,DF,CWIEMMPr*.mcp
2,Im + Ex,Unix,,DF,DmWrTEXT*.html
2,Im + Ex,,-kb,DF,MKBYPNGf*.png
# End translator clipping

To reorder list items, simply drag them around.

Translators are always processed in the order they appear in the preference's translator panel and the first matching translator is applied. Therefore, you should take extra care to ensure that there are e.g. no "matches all" file name patterns ("*") covering other items.

Ignore Filters


You will sooner or later come to a point where you have files in your module folders that you don't want to have under revision control, but still need in your working folder (these might be e.g. Dreamweaver temp files, .c files created by Bison or Flex, etc.). To hide these files from MacCVSClient's module view, you have two options.

First, the standard .cvsignore file (which lists file name matching patterns and functions on a per folder basis; see other CVS documentation).

Second, the Ignore Files preference offers additional file type and creator based file matching and works globally for all your modules and folders.



The "New", "Change", and "Delete" buttons behave exactly the same as in Translators. Drag-and-drop works here also.

The way the "Ignore Files" mechanism works is straightforward: whenever MacCVSClient reads a module folder on your disk, it matches every unknown file it finds against the Ignore Files list. Matching works the same as in Import Translators, based on the combination of file name pattern, file type code, and file creator code. If they match, the file is ignored.

For every entry in the Ignore Files list, the degree of "ignorance" ;-) can be selected:

Matching files will not be shown as unknown files in the module window, but hidden instead.
Matching files will be skipped in "CVS Import" operations.

Usually, you would want to select both, I reckon.




If the check box for automatic scrolling is checked, whenever you are opening opening a diff/conflict window the first time, its content will be scrolled down so far that the first diff/conflict line is visible at the top of the window.

If the check box for console output is checked, CVS annotate, log and diff output is echoed to the console window. Otherwise it will only be accessible through diff or log windows. See also: Info Windows.

The other settings on this panel should be more or less self explanatory.


Other Settings


Long file (and folder) names (more than 31 characters) are supported on systems and volumes that support long file names. This means that on a system on or after Mac OS 9 on HFS+ formatted volumes, MacCVSClient supports long file names. In all other situations, only standard (maximum 31 characters) file (and folder) names are supported. Long file name support can be disabled if you want to e.g. support compatibility across systems.

The "CVS" files in a sandbox folders store very important CVS control information for all files in the folder. The "CVS" files must never be manually changed or removed. To help enforce this, MacCVSClient can keep the files locked. This automatic locking can be disabled (which makes it easier to throw a whole CVS folder into the trash can and delete it.

The CVS "Import", "Add", and "Commit" commands expect (descriptive) comments on what is imported, added, or committed. The "Scrapbook" window is supposed to be used to compose such comments. See Committing Files to understand how the "Scrapbook" window interacts with the "Commit" dialog. The "Add" and "Import" dialogs behave similarly. Here's the choice of comment auto copy behaviours:

  • Copy the entire contents of the "Scrapbook" window.
  • Copy the "Scrapbook" window's current selection only.
  • Don't copy anything automatically.

The Repository Comment Encoding setting can be used when parties on different platforms collaborate on one repository. If e.g. umlauts or French accented characters are being used in commit log messages, the same text encoding has to be used by all contributing parties, otherwise these special characters do not show up correctly.

If the encoding conversion is enabled, commit log messages (as well as add or import log messages) are converted to the selected target encoding before being sent to the repository (and are thus stored in that text encoding in the repository). When retrieving a CVS log, the retrieved log text is converted back from the selected encoding and is thus displayed again correctly on the Mac.

The other settings on this panel should be more or less self explanatory.

Rev. 1.42 LegalCopyright © 1997-1998 Fontworks Ltd., © 2000-2004 Jörg Bullmann