Swathantra Malayalam Computing




CVS client side setup

Suresh Valiya Parambil


Concurrent Version System a.k.a CVS  is a version control system.  CVS seems to be the dominant version control system in Open Source /Free  Software development. CVS is useful for everyone from individual developers to large, distributed teams. You can find a lot of information about CVS by searching the internet.

Why do we need to use CVS ?

CVS  supports internet based distributed development. For example, people from different parts of the world contribute to the SMC project and in order to maintain a centralized code repository, CVS is used. CVS allows the developers to access and update the files concurrently inspite of their geographic locations.
  • Its client-server access method lets developers access the latest code from anywhere there's an Internet connection.
  • Its unreserved check-out model to version control avoids artificial conflicts common with the exclusive check-out model.
  • Its client tools are available on most platforms.
There are many ways to access a CVS server. To use CVS on  client side, you should have an account on the server. Whenever you need a piece of code, check out the code, modify it and then check it back in.

Most of the servers supports key based authentication, which means you need to create a public key and post it.


Create a RSA public key using the command .

 $ ssh-keygen  -t rsa

This creates a public key and a private key  and places the keys in  $HOME/.ssh  directory , by default. Goto .ssh directory (ie, cd ~/.ssh ) and open id_rsa.pub file. Do NOT modify anything.

Now you need to upload your keys, Please see this link to learn how to upload your keys on Sarovar.org. Once you uploaded the keys it may take a while  for your keys to get updated based on the Server. So wait for 4 hours or more before proceeding to next step.

tick, tick,tick .....wake up young sky walker !!!.

Let's try to access CVS, first thing what you need to do is to checkout the files from your CVS server.

So, create a directory where you want to download the files. Change to that directory.then try to checkout files. The command for checking out the file is

cvs -d :ext:your-id@server:/cvsroot/projectname checkout directory

so to checkout files from  sarovar.org's smc project  I use the command as follows

export CVS_RSH=ssh
cvs -d :ext:vpsuresh@cvs.smc.sarovar.org:/cvsroot/smc checkout malayalamgnome

If everything goes fine, then you should see something like this. (values varies based on the server and the project).
cvs  -d :ext:vpsuresh@cvs.smc.sarovar.org:/cvsroot/smc co malayalamgnome
The authenticity of host 'cvs.smc.sarovar.org (202.88.238.22)' can't be established.
RSA key fingerprint is 40:9a:80:e1:15:06:c0:ab:6b:eb:a8:0e:30:3f:60:7e.
Are you sure you want to continue connecting (yes/no)? yes
Warning: Permanently added 'cvs.smc.sarovar.org' (RSA) to the list of known hosts.
cvs server: Updating malayalamgnome
U malayalamgnome/acme.HEAD.ml.po
..........
If this is the first time your box is trying to access, then you may get a message saying something like you are trying access unauthorized machine blah blah. Then it will shoot a question  whether you like to add the server name into trusted server names, say yes. To create this 'trusting relation' only we created public and private keys for our machine in the previous section.

If you dint get any error messages, that means you  are in good shape, so you should see the files downloaded to your directory.  Grab a CVS manual and familiarize the commands. add,update,diff and help are the most useful commands in my openion. To get help,  try 'cvs --help'  or 'cvs --help add'  and so on.

Proceed to next only if you successfully compleated the previous step and you like GUI than command line.

Here's how to setup 'Cervisia', a  CVS GUI client comes with RedHat and other distributions.

Open Cervisia, go to 'Repository' then select Repositories. Add a new entry in repository field enter everything from ":ext till your project name" and in second field enter 'ssh'. People says a picture is beter than a thousand words, OK, here is a screenshot of my setting.

Step 2. Change settings, I had to spend sometime to figure this out,  it looks like this is the command which gets executed when we try to use the client.

Goto Settings menu and choose Configure Cervisa option,  First field  should have your userid@server, for eg: vpsuresh@cvs.smc.sarovar.org, if this is not correct,then correct it. In second field provide path to your cvs executable,  for eg: cvs.  here is a screenshot of my setting.

OK, you are all set to use CVS GUI client.  From File menu, select the option open sandboxes  then choose the folder, where you checked out the files from server, you should be able to see all your checked files there.  Select a file and right click on it, it should show list possible commands. Here is a snapshot of  'diff' command on gnome-build.HEAD.ml.po.

Leftover:  'konqueror' browser integrates Cervisia, so you may use Konqueror to browse  your CVS folder. When you click the red brick icon it starts Cervisia internally and start using Cervisia. I think it should be similar to setup other GUI clients also.


(C) Swathantra Malayalam Computing & Suresh VP.  Thanks to  Vinod Saravana B for his  valuable remarks

Trademarks are owned by their owners.
Permission is granted to copy, distribute and/or modify this document under the terms of the GNU Free Documentation License,
Version 1.2 or any later version published by the Free Software Foundation;
A copy of the license is located at www.gnu.org/copyleft/fdl.html, in the section entitled "GNU Free Documentation License".
The information given in this document is believed to be correct, the author will accept no liability for the content of this document.
Use this document at your own risk.


 Questions, Comments, Corrections? Email  webmaster