If you intend to continue to track -STABLE, you can just update your
*default release=cvs tag=RELENG_8
*default release=cvs tag=RELENG_9
and then perform your csup/build/installworld as normal. If you've customized your kernel, you'll need to review the new kernel configuration and merge your changes with it.
Technically, 8-RELEASE and 9-RELEASE each branched off of HEAD at different points in time, so it's not the case that 8-STABLE blends straight into 9-RELEASE. Changes from HEAD or newer branches are often backported to older ones if they would benefit that older branch, but that is handled on a case-by-case basis.
Some further guidance, if you need it:
The build/install would be followed by running
mergemaster to update and merge configuration files. You'll also need to rebuild all installed ports to be compatible with the 9 ABI (or else install the
Be sure to read both
/usr/src/UPDATING and the release notes for FreeBSD 9, to make sure that you understand the consequences of moving from 8 to 9, as there can be significant changes.
nixCraft has a nice howto here. It's for moving from 7 to 8, and assumes you're using
portmaster, but the procedure is generally the same. It notes using
cd /usr/src && make delete-old to delete old libraries afterwards; I'd forgotten about that.
Side note: If you don't need to tweak your kernel config much, I much prefer installing -RELEASE, and using
freebsd-update for binary patching. It's much more maintainable over time. In your case, since you're tracking -STABLE, this would mean a reinstall/upgrade from install media, because
freebsd-update only supports upgrading between released/beta/RC versions of FreeBSD - but in my opinion, unless you need a custom kernel, it's worth it.
EDIT: Note that once you're tracking -RELEASE, you can use
freebsd-update to upgrade from release to release, or from -RC and -BETA versions -- another reason why I prefer it.