CVS
How to set up a CVS server in Linux
Feb 18th
Repository Initialization
First create a directory to be used as CVS repository and initialize it as shown below.
[root@techpulp ~]# mkdir /cvsroot [root@techpulp ~]# chmod 1777 /cvsroot
Initialize the repository for the first time
[root@techpulp ~]# cvs -d /cvsroot initInstall inetd or xinetd
The CVS server requires either legacy “inetd” or latest “xinetd” package be installed in the system. If you don’t know how to find it, look for the presence of “/etc/inetd.conf” file for “inetd” package and look for the presence of “/etc/xinetd.d” directory for “xinetd” package. If none of them is present, you should install “xinetd” package. You can install a More >
Concurrent Version System (CVS) Quick Guide
Feb 18th
CVS is a heavily used source control system both in open source projects and commercial projects. This article explains frequently used commands by a developer.
Set the command-line environmentFirstly, before using cvs command, the CVSROOT environment variable should be set to point to CVS server. This command can be placed in ~/.bashrc to make it as default environment.
[neo@techpulp ~]# export CVSROOT=:pserver:neo@cvs.techpulp.com:/cvsroot
In the above command, cvs.techpulp.com is the CVS server, neo is the user name on the CVS server and /cvsroot is the base of the CVS repository in the server.
It is not necessary that CVS must be used only with remote CVS server. If you More >
How to see help of internal command of CVS
Nov 7th
The –help option followed by CVS internal commands like checkout, checkin, tag etc can be used to get the help for a specific command. The following example shows how to see help for tag command.
[neo@techpulp ~]# cvs --help tag
Usage: cvs tag [-bcdFflR] [-r rev|-D date] tag [files...]
-b Make the tag a "branch" tag, allowing concurrent development.
-B Allows -F and -d to disturb branch tags. Use with extreme care.
-c Check that working files are unmodified.
-d Delete the given tag.
-F Move tag if it already exists.
-f Force a head revision match if tag/date not found.
-l Local More > How to create a CVS branch
Nov 7th
A branch tag is very much different from a normal tag. A normal tag can be just used to tag a particular version of sources and retrieve the exact version later. No independent development can happen based on a normal tag. However a branch tag creates a virtual branch in CVS repository sources and facilitates parallel development to happen on that branch. There is no limit on number of branches.
For example, if you plan to work on two releases of same project, you would want to create a branch for each release and work on them separately.
The creation of a More >
How to move a CVS tag
Nov 7th
Moving an existing tag is needed if some files are forgotten to be checked in before tagging the sources. In such cases, the remaining files can be checked in and then tag the sources with -F option.
CVS doesn’t allow duplicate tags to be present in the repository. You can either chose a different tag name or chose to move the existing tag if same tag name has to be used. However this is applicable for normal tags and not for branch tags. The following example tags the sources with a tag called my-release-tag-1. This moves the tag to latest sources if More >
How to remove a CVS tag
Nov 7th
An existing CVS tag can be removed by using -d option with cvs tag command. However a branch tag can’t be remove from the CVS repository. The following example removes a tag called my-release-tag-1.
[neo@techpulp ~]# cvs tag -d my-release-tag-1 [neo@techpulp ~]#
Script to delete CVS or SVN directories recursively for source code packaging
Sep 22nd
It is required to remove directories created by source code version control systems like CVS and SVN before releasing the source code. This can be done using the following command at the bash shell.
- Move to top level directory of your project sources
- Run the following commands
bash# find . -iname CVS -type d | xargs rm -rf bash# find . -iname .svn -type d | xargs rm -rf


Recent Comments