Source control management system.
The major brands are CVS and Subversion (SVN). I started off with CVS to manage my source code and lately, I have been using SVN more and more.
SVN claims to be a improvement for CVS. It has a slightly different method to track the source code.
For more information, you can visit their respective web site for more detail.
My personal option:
I like CVS more because I felt that it made more sense to me when having version for each file. SVN uses revision of the project instead of the file individually.
In CVS, I will say:
Version 1.1 of foo.c om project p.
In SVN, I will say:
The foo.c in revision 5 of project p.
The argument could be similiar to either VI or EMACS is better (VI), but it's personal preference and I think as a programmer, I should be flexible to either.