下一个: , 上一个: Binary files, 上层: Top


10 多人开发

当软件项目不再由一个人来开发的时候,事情总会变得复杂起来。 因为经常会碰到两个人同时编辑一份文件的情况发生。 有一种解决方案,文件加锁(file locking)或者节制检出(reserved checkouts),就是每份文件每次只允许一个人来编辑。 这种方法在很多版本控制软件中使用,比如 rcssccs。 当前在 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 还支援各种便利的沟通方式,而不是像节制检出那样用强制的规则。

本章余下部分将解释这些工作模式,和一些涉及在它们间选择的问题。