What is CVS?
CVS stands for Concurrent Version System and allows
multiple developers to work on a common set of files which are stored on a
server. The files stored on the server are referred to as the repository .
Developers can "checkout" files from the repository to get their own
copy of the files. A developer can then "checkin" their changes
to the repository. CVS merges all the changes made by developers and keeps
track of all the versions of the files. For a more information on CVS please
see the following site: http://www.cvshome.org
What is JavaCVS?
JavaCVS is an implementation of CVS in Java (surprise surprise). liscensed
under the GPL It implements the CVS protocol for communicating with a CVS
server. It does not implement the server side of CVS. The aim is to
provide a cross platform CVS client that supports all the features of the
standard Unix CVS command and more but is developed in an object oriented
way. This will allow Java applications to easily integrate CVS
support. Traditionally, CVS is used from a command line which can be intimidating
for new users to get to grips with. Whilst JavaCVS will provide a command
line version which is compatible with the Unix CVS command, it will also
provide a powerful and extensible Graphical User Interface (GUI) to CVS.
When will it be ready?
JavaCVS is currently in early development and design although many of the
CVS commands are now supported and it can also display differences between
files graphically. It is anticipated that by September 2001 a beta version
will be available supporting most common functionality.
Where can I get it?
An early precompiled alpha version is available
. The latest source code is available by CVS from the
CVS repository for JavaCVS
What documentaion is available?
The javadoc generated APIs can be viewed here
Here is the main window. This will change quite drastically when I add some
nice icons and the menu bar. Still a work in progress but it gives you an
This screen shot shows the difference options dialog:
Here is a screen shot of Java CVS showing the differences between a repository
revision of a file and the local working copy. This was produced using the
-gui option to the diff command (an option not supported in the standard
CVS command). I have set up an alias called jcvs which invokes the command
based interface to JavaCVS. The full command type was "jcvs diff -gui":