The Solution

  1. When doing the import of the original package, use a meaningful start tag, as in:

    $ cvs import -m "Initial import into CVS" foo dyork foo-version-2-0
    
  2. Use CVS as you would normally do for the development of the files.

  3. At packaging time, first tag the repository with a meaningful tag:

    $ cvs tag Release-2-1
    
  4. At packaging time, first extract a copy of the original version (if you do not have a tarball somewhere else):

    $ cvs export -r foo-version-2-0 -d foo-2.0 foo
    
  5. Use cvs rdiff to generate a patch file:

    
    $ cvs -d /home/cvsroot cvs rdiff -u -r foo-version-2-0 -r Release-2-1 foo > foo-2.0.patch.20010611
    
  6. Subsequent patches can be generated using the new tag as the first tag in the sequence. (i.e. "-r Release-2-1 -r Release-2-2")