The Concurrent Versions System
This page describes why you should be using CVS, and what
you should be using it for. Once you've read this, you will
want to know:
What Is It?
CVS (The Concurrent Versions System) is a version control
system, which allows you to keep old versions of files (usually
text files), keep a log of who, when, and why changes occurred,
etc. Unlike simpler systems, CVS does not just operate on one
file at a time or one directory at a time, but operates on
hierarchical collections of directories consisting of version
controlled files. CVS helps to manage and control the
concurrent editing of files among multiple authors. CVS can be
used securely over a wide area network, with configurable
permissions for who can access and add to files.
CVS is Open Source (and free!!) and available for all platforms.
The Network repository is maintained at the AEI, please direct any
questions about it to Gabrielle and Peter.
Who Should Be Using It?
- Anyone who writes papers, uses or develops software,
maintains web pages, works on different computers, ... basically
- Anyone with ten minutes to spare to learn the four commands
you need to get stuff from a CVS repository and commit new stuff back.
What Is It Good For
- Maintaining Web Pages: A team of people at different
sites can all contribute to a set of web pages, and be easily
aware of what everyone else is doing. You can keep an up-to-date
copy of the web pages on your laptop, and so can quickly add
new information, and just sync it up next time you're on line.
- Reading Web Pages Offline: Keep a copy of all the
web pages you work with on your laptop, then not only can you
keep them up-to-date, you've also got all the information
at hand for viewing offline with a browser.
- Writing Papers: We find CVS essential now for writing
papers (with LaTeX)
with more than one author. You don't have to keep track of
the "current version" and send it around continuously, everyone
can add text and make changes without worrying about merging it
all back together. You don't need to worry about loosing control
of the changes which are being made either ... it is easy to see
what each individual has added, and you can remove it easily if
you don't like it.
- Working With Multiple Machines: If you have a laptop
and a desktop, you can use CVS to keep the important stuff in
sync without getting confused, or overwriting the latest version
of your files.
- Access From Anywhere: If your documents, codes, papers
are maintained in CVS you can get at them from any machine, any
where in the world ... you just need a network connection.
- Collaborations: If you work with other people CVS is
an easy way to distribute information without keep sending
files via Email. You can give anyone access to checkout from
the repository (on a directory basis if you want).
- Software Development: If you are developing any kind
of software, whether you're one person working on a 500 line
code, or part of a large multi-institute collaboration developing
a large framework, you have to use some kind of a versioning
system. Anything else is foolhardy. The reasons are too many to
put down, but here's a few
- You have a back up of the code
- You can get back to a version of the code from any date
- You can see the difference between code at any two dates
- You can reproduce results from any time in the past !!
- You have a log of changes to every file
- You can distribute your code easily
- You can trivially incorporate patches from others
- You can develop as a team
At the AEI we use CVS for:
- These EU Network Web Pages
- Our Institute web pages, the Numerical Relativity Group web pages,
Living Reviews, the Cactus Code web pages.
- Our bibtex database of references.
- Group papers and proposals.
- Private CVS modules for personal papers, CVs, codes, etc.
- Software development and distribution for Cactus
- The Numerical Relativity Groups own private Cactus Thorns
- Visualization tools and software
This work has been supported by the EU Programme
'Improving the Human Research Potential and the
Socio-Economic Knowledge Base' (Research Training Network