CVS のキーワード置換しないオプション

-ko オプションを使うといいらしい。Subversion の場合、デフォルトではキーワード置換しないようになっているので心配無用。

CVSSubversion では、$Revision: $ などと記述しておくと、コミット時にそのときのリビジョンの値に置換してくれる。たとえば、$Revision: 1.1 $ だったのがコミットすると $Revision: 1.2 $ になる。これを、キーワード置換(もしくは、キーワード展開)という。

自分自身が開発元のプロダクトにとっては便利な機能であるが、外部のオープンソースなどを手元でバージョン管理する場合、勝手に置換されるとオリジナルとは違うものになってしまい困ってしまう。

CakePHPソースコードCVS で管理しているのだが、-ko オプションをつけずにコミットしたら勝手に置換されてしまった。後の祭りである‥・。

CVS のキーワードを取り除く

基本的には、取り除いても問題ない情報なので、

find -name "*.php" | xargs sed -i -e 's/\$\(Date\|Id\|LastChangedBy\|Revision\):[^\$]*\$//' 

などと、取り除いてしまうのも手かな。