下一个: Revision management, 上一个: Binary files, 上层: Top
当软件项目不再由一个人来开发的时候,事情总会变得复杂起来。
因为经常会碰到两个人同时编辑一份文件的情况发生。
有一种解决方案,文件加锁(file locking)或者节制检出(reserved checkouts),就是每份文件每次只允许一个人来编辑。
这种方法在很多版本控制软件中使用,比如 rcs 和 sccs。
当前在 cvs 中通常可以用 cvs admin -l
命令来做到节制检出 (参阅 admin options)。
这点在 cvs 里不如监视(watch)特性做的好,后文有述,但对于寻找“节制检出”手段的人来说也够用。
cvs 1.12.10 以后的版本,获得大部分节制检出功能的另外一种技术是打开“advisory locks”。
为了打开“advisory locks”,所有的开发人员要将 "edit -c", "commit -c" 放入它们的 .cvsrc 文件中。
然后在仓库里面打开监视。如果有人已经编辑此文件,这将阻止他们执行 cvs edit
。
这也可以配合普通的监视,使用适当的过程(非软件强制),避免两个人同时编辑。
cvs 默认的模型为无保留检出(unreserved checkouts)。 这种模型下,多个开发人员可以同时编辑自己的工作副本(working copy)。 第一个提交修改的人无法自动得知其他人已经开始编辑它。 其他人在提交此文件的时候将得到错误消息。 然后他们必须要用 cvs 命令使自己的工作副本用仓库修订版本来更新。 这一过程几乎是自动的。
cvs 还支援各种便利的沟通方式,而不是像节制检出那样用强制的规则。
本章余下部分将解释这些工作模式,和一些涉及在它们间选择的问题。