What are your best practices and tips for using git to interface with a CVS repository?
If the upstream is 100% in CVS (e.g., OpenBSD, or many of its subprojects like mdocml or ports-readmes), and especially if it's as rusty as the OpenBSD CVS tree is (e.g., occasionally even having history rewrite), I find it quite useful to simply commit the underlying CVS/{Entries,Repository,Root} files directly into my git repository.
This makes it very easy to not have to have multiple independent workspaces, make it possible to checkout with git on any machine, and then cvs up in place, or cvs diff to generate correct CVS patches for mailing to the git-less maintainers upstream.