バイナリファイルを安全に登録するために

以下では、バイナリファイルを安全に cvs 登録するための方法を記す。



準備 (CVSROOT 編集のために)

バイナリファイルの登録設定をするためには、 リポジトリ以下の CVSROOT 内を編集する必要がある。 編集のための checkout などの方法については cvs 管理用ディレクトリ CVSROOT の編集 を参照せよ。

CVS のキーワード展開

CVS は $Revision$ などというような特殊な文字列を $Revision: 1.3 $ のように置き換えたり、改行コードを LF 形式に置き換えたりするように なっている。これは便利な機能の1つなのだが、バイナリデータなどで 偶然こういった文字列と認識されて置き換えられると、結果的に データが壊れてしまう。そのため、ある拡張子のデータに関しては バイナリデータと取り扱うようにするのが安全である。

各ファイル毎に行なう方法には ファイルを新規に追加する場合 − バイナリファイルの場合 とすれば良いが、拡張子に応じて自動的にバイナリデータとして扱えると楽である。

cvswrappers 編集

拡張子に応じて自動的にバイナリデータとして扱うには CVSROOT/cvswrappers に以下のような記述を加えると良い。

# Treat Image and Archive and Data file as Binary Data
*.gif -k 'b'
*.GIF -k 'b'
*.jpg -k 'b'

こうすることで、拡張子が gif、GIF、jpg のものに関してはバイナリデータと扱われ、 文字列の置換が行なわれなくなる。 (これは開発者個々人が cvs add する際に -kb オプションを付けるのと 同じ効果を発揮する。)

とりあえず思いつく限りバイナリであろうと言う拡張子を上げてみると 以下の通りであろうか? (使われないようなものもいっぱい混じっているかも 知れない)

# Treat Image and Archive and Data file as Binary Data
*.gif -k 'b'
*.GIF -k 'b'
*.jpg -k 'b'
*.JPG -k 'b'
*.jpeg -k 'b'
*.JPEG -k 'b'
*.png -k 'b'
*.PNG -k 'b'
*.tif -k 'b'
*.TIF -k 'b'
*.tiff -k 'b'
*.TIFF -k 'b'
*.xpm -k 'b'
*.XPM -k 'b'
*.pbm -k 'b'
*.PBM -k 'b'
*.ico -k 'b'
*.ICO -k 'b'
*.eps -k 'b'
*.EPS -k 'b'
*.o -k 'b'
*.O -k 'b'
*.a -k 'b'
*.A -k 'b'
*.mod -k 'b'
*.MOD -k 'b'
*.nc -k 'b'
*.NC -k 'b'
*.obj -k 'b'
*.OBJ -k 'b'
*.ai -k 'b'
*.AI -k 'b'
*.psd -k 'b'
*.PSD -k 'b'
*.fla -k 'b'
*.FLA -k 'b'
*.swf -k 'b'
*.SWF -k 'b'
*.dvi -k 'b'
*.DVI -k 'b'
*.pdf -k 'b'
*.PDF -k 'b'
*.bz2 -k 'b'
*.BZ2 -k 'b'
*.gz -k 'b'
*.GZ -k 'b'
*.tar -k 'b'
*.TAR -k 'b'
*.tgz -k 'b'
*.TGZ -k 'b'
*.tar.gz -k 'b'
*.TAR.GZ -k 'b'
*.cab -k 'b'
*.CAB -k 'b'
*.lzh -k 'b'
*.LZH -k 'b'
*.zip -k 'b'
*.ZIP -k 'b'
*.sea -k 'b'
*.SEA -k 'b'
*.dat -k 'b'
*.DAT -k 'b'
*.ppt -k 'b'
*.PPT -k 'b'
*.doc -k 'b'
*.DOC -k 'b'
*.xls -k 'b'
*.XLS -k 'b'

Last Updated: 2005/11/09, Since: 2004/09/30