Version Control
Version Control Systems (also called Source Control Management (SCM) or Revision Control Systems (RCS)) are a type of software for keeping track of changes to files and merging changes from multiple users (usually developers) into a common tree. There are a number of different VCSs out there. Here we will focus on commonly used open source ones.
1. Historically relevant (and probably installed)
CVS - essentially the Ur version control system. Very common still, but not recommended for new projects
Subversion - designed to replace CVS and correct some of its flaws. Similar syntax to CVS. Too much like CVS for many people's taste, but probably the most commonly used VCS still. Google Code and SourceForge offer it for projects they host.
The Developer Tools package (available on the install discs or from ADC) for MacOS X 10.4 installs CVS, and 10.5 also installs SVN. Third party packages also exist for SVN for earlier versions of MacOS X. Windows machines should have TortiseCVS and TortiseSVN installed. These programs integrate CVS and SVN into Windows Explorer.
2. Recommended (and installed)
All of these are distributed VCSs, which means that each user has a full tree including revision history; there is no privileged central tree (unless you want there to be).
Git - A VCS designed by Linus Torvalds to meet the needs of the Linux kernel developers. Powerful but complicated (read: often arcane, complicated, and frustrating). Other notable projects using Git include Perl. NB: On MacOS X, the official Git package installs the binaries to /usr/local/git/bin/, so you'll need to add that to your path.
Bazaar - a VCS written in Python by Canonical software (makers of Ubuntu Linux) for their needs. It's about as powerful as Git, but with much less jargon and with simpler command syntax. Bazaar is designed in part to integrate well with Canonical's LaunchPad project hosting. Now used by MySQL, among others.
Mercurial - VCS written in Python and C. Created when the makers of Bitkeeper (the VCS formerly used by the Linux kernel team) pulled free licenses for open source projects. The kernel team went on to create Git instead, but other projects (most notably Mozilla, Java, and Python) use Mercurial. It is extremely flexible, but can be a bit arcane and scary (i.e. When a merge is necessary it wants to make you deal with it right now instead of leaving merge markers), and you really want to be sure to have it configured before first use, but it's still more user friendly than Git, and close to it in speed and repository compactness.
3. Worth noting
Darcs - designed to replace CVS and SVN. Written in Haskell and "based on a unique algebra of patches".
Monotone - another VCS designed to replace CVS and SVN. But like Git, Arch, Bazaar, and Mercurial, it's designed to be decentralized. Not amazingly popular though.
Arch - a distributed VCS. Mostly superseded by Bazaar, and not under active development, but you might run across projects using it.