See also rcs
Get the current version of the head branch
$ cvs co MODULENAME $ cvs update -dP
Create the branch start tag
$ cvs tag <BRANCHNAME>-START
Set the branch tag
$ cvs tag -b <BRANCHNAME>
Checkout the new branch into a new directory
$ cvs co -r <BRANCHNAME> -d <NEWDIRECTORYNAME> MODULENAME
Set an end tag of the branch (in the branch directory)
$ cvs tag <BRANCHNAME>-END
Set a tag for the head branch to have a way to roll back before the merge (in the head directory)
$ cvs tag <BRANCHNAME>-BEFORE
Update the head branch with the differences of the branch
$ cvs update -d -j <BRANCHNAME>-START -j <BRANCHNAME>
Check if any patches went wrong
$ grep -lr '<<<<' *
Commit the new head branch
$ cvs ci
Release the branch directory
$ cvs release -d <NEWDIRECTORYNAME>
$ cvs -d -j <STARTTAG> -j <ENDTAG>
Find the revision number when the line was added
$ cvs annotate <FILE>
Get the log entry
$ cvs log -r<REVISION> <FILE>