CVS Tips


WindowsでのCVSレポジトリの利用制限

次のことを注意すること。

Windowsプログラム専用のレポジトリ、UNIXプログラム専用のレポジトリがある場合は、あまりいろんなことを考える必要なし。

WindowsとUNIXで一部共通のものがある場合(あるいは社内共通のツールキットがあるとか)、UNIXで構築されていたレポジトリに、Windowsのソースがおじゃまする形になると思うが、いくつかを注意点がある。結論からすればある程度の大人の管理で、十分運用できる。(そもそもCVSは結構大人の管理が必要だし)

  1. レポジトリはsamba経由でアクセスしてはならない。rsh経由、ssh経由でアクセスすること。 
  2. CR+LF問題に注意する。大抵はwindowsのcvs、あるいはwindowsのrshクライアントが勝手につけたり消したりする。
  3. 日本語は注意が必要。
  4. バイナリファイル。

1。これには2つの問題があります。一つはWindowsからのファイル操作は大文字も小文字もないということ。もう一つはsamba経由のアクセスではaddで作成したディレクトリにライトパーミッションを自動的につけることが面倒だからです。設定で回避できなくもないのですが、CVSのレポジトリのアクセスに限ってというのは結構難しいかできないと思います。それをするのならば、rshやssh経由などのほうが良いでしょう。またrsh、ssh経由ではファイルアクセスをUNIXにログインして行っているので、機知の問題以外が出にくいでしょう。

2。CR+LFは勝手にwincvsかrsh/sshが処理するので、CR+LFがついたファイルをWindowsからならコミットして構わない。しかし、展開したレポジトリがsambaなどのファイルサーバなどの管理下にある場合、UNIX側からしれっとcvs操作を行なってはいけない。従って、チェックアウトするOSによってそのファイルのリターンコードが変わるので、ファイルにそういう属性をつけてはいけない。たとえば、emacs用などのファイルヘッダのcodingには、-dosや-unixはつけてはいけない。

3。WindowsとUNIXの両方から参照されるファイルにはコメントを日本語で入れない。あるいはeucでかく。幸いVisualCもBorlandCもEUCのコメントは何事もなかったように処理する。しかし、C++ソースをSJISで書いた場合、2バイト目にバックスラッシュがある文字が最後にくるコメント行は、次の行がつながって無くなってしまうので注意が必要。/*  */でコメントアウトを徹底するか、あるいは//から始まるコメントは「。」で終わるとか、スペースを

4。イラストレータとかのeps、aiファイルはほとんどテキストのようなものなので、テキストモードでコミットしても、まぁ問題はない。$Id: cvs.html,v 1.1.1.1 2002/06/10 05:29:46 kohju Exp $と画面の隅っこにタグをいれると置換をするが、その文字を編集すると二度とそれが変わらなくなる(これはイラストレータが吐き出すときに、スペース毎に文字エリアを区切るため)ので注意が必要。どうしてもタグが欲しい場合はエディタで開いてコメントにいれておくこと。しかしWindowsのファイルはバイナリが多いので、バイナリモードでコミットしないと問題がおきる。もちろん、都度add時に、バイナリモードと指定しても良いが、$CVSROOT/CVSROOT/cvswrappers または、$HOME/.cvswrappers に、

*.doc -k 'b'
*.xls -k 'b'
*.res -k 'b'

などと入れておくとよいだろう。