In addition to RCS and subversion there is CVS. CVS can be more intimidating than RCS for casual use but it is more powerful. This article provides an illustration of simple CVS use - if you have not used CVS - and you have a large collection of files that you would like to put under source control, this article will get you started. I have kept the formatting compact - with comments beginning with '#' in the midst of the commands.
#First let's create an example directory #with two files in two directories mkdir example cd example mkdir a mkdir b touch a/a.txt date > b/b.txt #An ls -aR will show you the structure of the example directory ls -aR #Now create a local cvs repository cvs -d ~/cvsexample init #And import the current directory into it, calling the project #in the repository 'example' cvs -d ~/cvsexample import -m "" example example initial cd .. #Move the example directory out of the way mv example example-old mkdir tmp cd tmp cvs -d ~/cvsexample co example #The cvs controlled example directory is now in ~/tmp/example #From now on we work in this directory - let's do some example work cd example/ ls echo "Another line" >> b/b.txt cvs diff #You will be prompted for a commit message cvs commit cvs log b/b.txt echo "Yet another line" >> b/b.txt #You will again be prompted for a commit message cvs commit cvs diff -r1.1 -r1.2 b/b.txt #And so on....you edit, commit, diff and track your work using cvs #e.g. to see all the changes to b/b.txt cvs log b/b.txt
As you can see - this is straightforward - and keeping annotated versions of your work under CVS will soon become second nature. You can add more sophistication as your projects get larger and the number of team members working on the files increases - but for simple personal projects the commands in this article will pay dividends. An excellent, free, online resource of detailed CVS information is available in Open Source Development with CVS, 3rd Edition by Karl Fogel and Moshe Bar.