長く学習してきて、rcsのロックの仕組みがようやく分かってきました。
ファイルをチェックアウトするとき、単純に、coでファイル名を指定すると、
takk@deb9:~/tmp$ co test2.c RCS/test2.c,v --> test2.c revision 1.10 done takk@deb9:~/tmp$ ls -l test2.c -r--r--r-- 1 takk takk 8 10月 10 20:23 test2.c takk@deb9:~/tmp$
となり、書き込みできないファイルとなるんですが、そもそもここでchmodしちゃいけないんですね。
Unix(Linux)のファイルパーミッションの仕組みも利用して、運用するみたいなので、書き換えたいファイルをチェックアウトする場合は、-lを指定します。
takk@deb9:~/tmp$ co -l test2.c RCS/test2.c,v --> test2.c revision 1.10 (locked) writable test2.c exists; remove it? [ny](n): y done takk@deb9:~/tmp$ ls -l test2.c -rw-r--r-- 1 takk takk 8 10月 10 21:25 test2.c takk@deb9:~/tmp$
-lを指定したら、自動的に所有者は書き換え可能になります。
チェックインするときに、-uを指定しなくても、
takk@deb9:~/tmp$ vi test2.c ~編集内容は省略~ takk@deb9:~/tmp$ ci test2.c RCS/test2.c,v <-- test2.c new revision: 1.10.3.1; previous revision: 1.10 enter log message, terminated with single '.' or end of file: >> 644 >> . done takk@deb9:~/tmp$ co test2.c RCS/test2.c,v --> test2.c revision 1.10 done takk@deb9:~/tmp$ ls -l test2.c -r--r--r-- 1 takk takk 8 10月 10 21:27 test2.c takk@deb9:~/tmp$
このように、co時に-lを指定しないと、書き換え不可の状態でチェックアウトされます。
ん~、ci -uって何に使うの分かりませんが、今は気にしないことにしますが、
ロック、アンロックの仕組みって、何で必要なのかというと、複数人で一つのファイルを修正する場合に、他人の修正を上書きしないようにするためですよね。
次回は、ロックした時に、自分以外のユーザがファイル修正できないことを確認したいと思います。
コメント