下一个: Watches, 上一个: Informing others, 上层: Multiple developers
如果多个开发者试图同时运行 cvs,其中一个人会得到下面消息:
[11:43:23] waiting for bach's lock in /usr/local/cvsroot/foo
cvs 会每 30 秒尝试一次,然后或者完成操作,或者继续显示上面的信息。 如果锁定时间看起来不正常,询问一下上面信息里显示的加锁的人是否他正在执行命令。 如果他们不在运行 CVS 命令,查看仓库里面在消息中提到的目录并删除它们所属以 #cvs.rfl、#cvs.wfl 或 #cvs.lock 开始的文件。
注意,这里的 lock 只是用来保护 cvs 的内部数据结构,跟 rcs 里面的 lock 没有任何关系—rcs 里面的是用来保留检出的(参阅 Multiple developers)。
除非有人加了锁来防止别人读或写,仓库可以在同一时间被多人读取。
一个人用一个命令提交的所有修改,在另外一个人执行更新命令时要么得到全部的变更,要么一个都没有。
但是 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 的变更。