A contractor created a stored procedure in Unicode format and committed it. CVS happily accepted it, as binary. CVS doesn't handle binary diffs nor does it expand macros which of course makes sense for binary data. The trouble I ran into was how the hell do I get it back to Text/ASCII mode. It was a simple matter of resaving the file under ANSI/Windows 1252 code page. With a text file in hand, the logical answer would be "cvs -kt MyFile.sql"
Logic does not factor into this! "cvs update: invalid RCS keyword expansion mode"
I thought perhaps my client version was causing issues "Concurrent Versions System (CVSNT) 2.5.03 (Scorpio) Build 2382 (client/server)" so I upgraded to the latest and greatest "Concurrent Versions System (CVSNT) 2.5.04 (Zen) Build 3510 () (client/server)" but that didn't resolve the issue. It looks like our server version is mostly up to date "Concurrent Versions System (CVS) 1.12.12 (client/server)" It's a point release behind and I see nothing in the patch notes to indicate there was a problem or fix relative to binaries.
After much futzing around via blogs, newsgroups and general google searches, I went with the old school solution "nuke it from orbit! It's the only way to be sure" Which amounted to ssh to our cvs server, remove the MyFile.sql,v and re-add it. I'm all ears if someone finds a solution but for me, I'm done worrying about it.