Next: , Previous: Informing others, Up: Multiple developers


10.5 同時に CVS の実行を試みる複数の開発者

複数の開発者が同時に cvs を実行しようとした場合、 次のようなメッセージが表示されます:

     [11:43:23] waiting for bach's lock in /usr/local/cvsroot/foo

cvs は 30秒毎に実行を試み、 まだ待つ必要があれば再度メッセージを表示し、 そうでなければ処理を続けます。 不適当な程長く待ち続けているようならば、 ロックさせている人物を見付けて、 実行中の cvs コマンドを訊いてみて下さい。 cvs コマンドが実行されてないのならば、メッセージで書かれているリポジト リディレクトリを見て、彼等が所有している #cvs.tfl, #cvs.rfl, #cvs.wfl という名前で始まるファイルを捜して、削除して下さい。

このロックは cvs の内部データ構造を保護するもので、 rcs で使用されるロック (lock) という言葉とは全く何の関係もないことに注意してください。 rcs のロックについては、 独占取得についての記述を参照して下さい (see Multiple developers)。

任意のリポジトリから何人でも、 同時に読み出すことが可能です。 誰かが書き込み中の場合にだけ、 他の人の読み出しや書き込みが禁止されます。

次に示すような動作を望む人がいるでしょう

     ある人物が一つの cvs コマンドで複数のファイルに対する変更点を
     格納した時、他の誰かが同時に update を実行すると、全てのファイルが
     更新されるか、全く更新されないかのどちらかである。

が、cvs はこのように動作しません。 例えば以下のファイルがあるとして、

     a/one.c
     a/two.c
     b/three.c
     b/four.c

ある人物が次のコマンドを実行した時、

     cvs ci a/two.c b/three.c

同時に他の誰かが cvs update を実行した場合、 update を実行している人は b/three.c の変更点のみが更新さ れ、 a/two.c の変更点は更新されないでしょう。