:: MacCVSClient :: User Guide
  Login Profiles

In MacCVSClient a "login profile" stores information about a user's login identity on a CVS server.

In the most simple scenario where you are using a single CVS server with a single CVS root directory, you need a single login profile only.

If you take part in several projects on different CVS servers or using different CVS root directories, you need login profile for each CVS server/root combination.

  Entering and Editing Login Profiles
  To enter a new login profile or to enter existing login profiles, you have to open the MacCVSClient preferences dialog and select the "Login Profiles" preferences panel.

Different login profiles can be selected using the Login Profile popup menu (the lower popup menu in the screen shot).

To add a new login profile, press the "New" button. This will create a copy of the currently visible login profile, add it to the end of the popup menu list, and select it so that you can apply changes.

To delete an existing login profile, press the "Delete" button.

Be careful! There is no undo available and if you delete a login profile, it's gone for good. You then have to enter it again by hand, if you want it back.

You can delete all login profiles but the last one, i.e. there is always at least one login profile in the list

To test whether MacCVSClient can use the currently visible login profile to connect to a CVS server, press the "Test" button. After a while, you will be presented with a dialog telling you whether it worked or not. It can take a while for the answer to show up. It all depends on how fast the server replies or how long it takes to determine that the server is unreachable. If a server doesn't anser/can't be reached, you'll get the error result after the connections's timeout expired.

  The Repository Access Method

The topmost input field Description carries a short description of this login profile. The sole purpose of this is to show you, the user, what this login profile is. It is not used in any other way. It doesn't have any effect on the login process whatsoever.

MacCVSClient supports various repository access methods:

Standard Pserver access.
Standard RSH access.
passive RSH [not available in Mac OS X]
This is the naked CVS client/server protocol, expecting a CVS server running at the far end of the port connected to.
local [available in Mac OS X only]
Starts a local CVS binary in server mode.
SSH1, SSH2 [available in Mac OS X only]
These use the Mac OS X built in SSH 1 and 2 implementations. In this case, the password field should contain the passphrase for the used private key.
  The Password

If you don't need a password (like e.g. for anonymous read-only CVS access on Sourceforge), select No Password.

If you need a password to connect to the CVS server of a login profile, you have to select one of the other options:

Don't Store Password
Here, you have to enter the password once each time you restart MacCVSClient. While MacCVSClient is running, the password is kept, but it is not stored after quitting MacCVSClient.
Store Password in the Keychain
This stores your password in the Keychain. A safe solution — if the Keychain Manager is available on your system. If you have multiple login profiles for the same server but different CVS root directories, a separate keychain password entry is created for each.
Store Password in Prefereneces
Here, your password is stored (as clear text) in a resource in the preferences file.

Be reminded, that if you choose to save the password in the preferences, it will be saved as clear text in the MacCVSClient preferences file on your computer. There is a security risk to this. Please think carefully about this before deciding to save your password there.

If you should change your mind later and decide you don't want your password saved in your preferences file anymore, just change the password setting and leave the preferences dialog with the OK button. The password will then be removed from the preferences file.


Other Settings


How do the other input fields in this dialog relate to the (in)famous CVSROOT environment variable on UNIX systems? Suppose CVSROOT looks like

":pserver:username@hostname:/home/Repository" or

The other components in this string have to be typed into separate input fields in the login dialog as follows:

Goes into the User field.
Goes into the Server field.
Goes into the Root field.

Depending on the selected repository access method MaCVSClient uses a different default port which should be working fine in most cases. Only use other port settings if you need. The defaults are:


The Custom CVS binary field allows you to use special versions of CVS by specifying the path to the CVS binaries. This works only for RSH, SSH1, SSH2 and local login methods. If you don't understand what this is about, this option is not for you.

The Server response timeout field shows the timeout value in seconds. This timeout is the span of time MacCVSClient will wait for answers from the CVS server. I find that 40-90 seconds seem fine for most environments I have worked in. Your mileage may vary, though.

The Send/receive buffer field shows the size in bytes of the send/receive buffer used by MacCVSClient to connect to the CVS server. For internet connection over relatively slow modem lines, I recommend something like a few KB, for local ethernet connections, I would use higher values. Possible values range from 1024 to 65535.

In the Data stream compression popup, you can set zlib based data stream compression. This is particularly useful if you are setting up a login profile that is pointing across the internet or over a modem dialup line. Settings higher than 3 or 4 usually don't yield substantial increase in compression rate, they mainly eat more CPU time.

  Limiting Connection Throughput

Why a throughput limit?

Imagine the following (not so unusual) setup: you are connected to the internet over a V.90 modem dialup and use SSH to protect your CVS connection. In this case, you will have set up port tunneling on your local SSH side and MacCVSClient will effectively connect to SSH on your Mac and only indirectly to the CVS server on the remote end of the SSH connection. This all described above.

If MacCVSClient now opens a connection to the CVS server and starts to send data to it, the following happens: MacCVSClient sends data to the SSH client that is running on the CVS client side, i.e. your Mac. This will work very fast, as no real network slows down data transfer.

The local SSH client in turn will try to send all the data to the remote SSH server (the other end of the encrypted SSH connection). Remember we said, your Mac is linked up the internet over V.90. So the local SSH client will take much longer to send all the data to remote SSH server than it took MacCVSClient to send the data to the local SSH client.

The moment MacCVSClient has sent all its data to the what it understands is the "CVS server" (the local end of the SSH connection) it starts waiting for CVS server responses. Here, the timeout value explained in Login Profile comes into the picture: the SSH client might take longer to send the data than MacCVSClient is willing to wait.

A simple solution would be to increase the timeout value. That's not very nice though, as "reasonable" time outs (e.g. CVS server down; modem dialup disconnected) will take soooo much longer to fire through.

A better solution is to specify a throughput limit in the login profile. This way, you can slow down MacCVSClient and make it send its data at approximately the speed of your dialup connection. Now, the moment the CVS client finishes sending is the moment the CVS server actually has received the last data.

Rev. 1.18 LegalCopyright © 1997-1998 Fontworks Ltd., © 2000-2003 Jörg Bullmann