ロックとアンロック(rcs)

長く学習してきて、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って何に使うの分かりませんが、今は気にしないことにしますが、
ロック、アンロックの仕組みって、何で必要なのかというと、複数人で一つのファイルを修正する場合に、他人の修正を上書きしないようにするためですよね。

次回は、ロックした時に、自分以外のユーザがファイル修正できないことを確認したいと思います。

コメント

タイトルとURLをコピーしました