Kevin Yanks describes in an article at SitePint how to use CVS to manage your own hacks you apply to OpenSource software you are using: SitePoint Blogs » Track Your Hacks with CVS
I do the same for several months now, but I use Subversion. You can mainly refer to Kevins article if you want to do the same. I just want to point at some things:
Layout of the repository:
In the picture you see how I set up the layout. It is only a suggestion and there may be other possible and reasonable layouts.
This is the repository for this website. I keep all WordPress plugins in seperate subdirectories under a directory modules. Each of these directories has two subdirectories: branches and trunk. trunk is obviousliy for the original version and branches for my hacks. There you can manage several branches, for example if you are using different modifications for different websites.
For merging a branch with the trunk you will change into the working directory of youre branch and use the following command:
You see, you need to know two revision numbers of the trunk. The newest revision and the revision you merged last with (or where you took the branch from). To easily remember this last_trunk_merge_revision I suggest that you write it in the log message when you check in the branch.
I also use Trac. Trac is a software which combines a wiki, a ticket system and browser for your subversion repository. Managing youre repository with Trac is very easy and usefull and you can document everything with the wiki. (hopefully I will make a post about trac very soon)
If you want more information about subversion and its commands, you should read the svnbook.