|:: MacCVSClient :: User Guide
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.
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:
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:
How do the other input fields in this dialog relate to the (in)famous CVSROOT environment variable on UNIX systems? Suppose CVSROOT looks like
The other components in this string have to be typed into separate input fields in the login dialog as follows:
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.
|Legal Copyright © 1997-1998 Fontworks Ltd., © 2000-2003 Jörg Bullmann