This is CVS 1.3, RCS 5.6, GNU diff and patch for Linux.
This should be everything you need to do decent version control.

CVS is a frontend to RCS, which in turn uses diff and patch.
pcl-cvs, an Emacs frontend to CVS is also included.

If you extract this in your root directory, you need to 

	setenv CVSROOT /home/Master	(csh users, in ~/.login)
or
	export CVSROOT=/home/Master	(bash/zsh, in ~/.{,z}profile)

Then get your favourite software package (e.g. Linux) and do

	cd /tmp
	tar xvzf linux-0.99.14.tar.gz
	cd linux
	cvs import -m LINUX_0_99_14 linux LINUX LINUX_0_99_14
	cd ..
	rm -rf linux
	tar xvzf ALPHA-pl14a.tar.gz
	cd linux
	cvs import -m LINUX_0_99_14A linux LINUX LINUX_0_99_14A
	cd ..
	rm -rf linux
	tar xvzf ALPHA-pl14b.tar.gz
	cd linux
	cvs import -m LINUX_0_99_14B linux LINUX LINUX_0_99_14B
	cd ..
	rm -rf linux

... and so on. To see the diffs between LINUX_0_99_14A and LINUX_0_99_14B
do

	cvs rdiff -u -r LINUX_0_99_14A -r LINUX_0_99_14B linux

If you want to compile/hack the kernel, do

	cd /usr/src
	mv linux linux.old
	cvs checkout linux
	cd linux
	[ hack away ... ]

If you want to see what you have changed:

	cvs diff -u
or
	cvs diff -u <file_or_dir>

When you feel confident that you want to commit your changes:

	cd /usr/src/linux
	cvs commit -m 'Your log message goes here'
	cvs tag my_hacked_version_of_pl14b

Then look at your diffs:

	cvs rdiff -u -r LINUX_0_99_14B -r my_hacked_version_of_pl14b

If you get conflicts after importing a new version (pl14c :-) ):

	cd /usr/src/linux
	cvs update -jLINUX:yesterday -jLINUX

which should do the same as

	cvs update -j LINUX_0_99_14B -j LINUX_0_99_14C

and resolve the conflicts manually. Conflicts look like this

	<<<<
	your hack version...
	||||
	what patch expected...
	====
	the new stuff
	>>>

You might want to do (in Emacs)

	M-x dired /usr/src/linux
	M-x grep -n '^<<<' `find -type f .`
or
	M-x grep -n '^<<<' **/*(.) for zsh users

to correct the conflicts. Use C-x ` to go to the next conflict.

RTFM!!!! Really.

CVS/RCS is *not* trivial. Read the papers about CVS and RCS in the
/usr/doc directory.

I also uploaded the CVS paper as cvs-paper.ps.gz

Have fun,

	Dirk

-----------------------------------------------------------------------------
Dirk W. Steinberg - RWTH Aachen - Internet email: steinber@ert.rwth-aachen.de
Aachen University of Technology / IS2-Integrated Systems in Signal Processing
Rhein.Westf.Tech.Hochsch. Aachen / Integrierte Systeme der Signalverarbeitung
Templergraben 55 / D-52056 Aachen / phone:+49 241 807879 / fax:+49 241 807631
Home address: Kleikstr. 63, D-52134 Herzogenrath,Germany/phone: +49 2406 7225