SVN是一个开放源代码的版本控制系统,相信做开发的基本上都用过,这里就不多介绍了。团队协作开发时常常会出现提交的文档互相冲突的问题,这里给大家介绍一下给SVN文件设置必须锁定的方法,当然你也可以对冲突文档进行合并处理,这个就需要人工处理了。
项目中操作:右击项目解决方案->Solution File->Subversion Properties->Add->选择"svn:needs-lock"->OK.
文件上操作:右击项目文件夹->TortoiseSVN->Properties->New->Needs-Lock->Locking required(read-only update) ->OK->OK.
这种方式属于"锁定-修改-解锁"模型,在这种系统中,在同一时间版本库只允许一个用户修改一个文件。缺点就是限制太多,经常会成为用户的障碍。
缺点:
-
锁定可能导致管理问题。有时候 Harry 会锁住文件然后忘了此事,这就是说 Sally 一直等待解锁来编辑这些文件,她在这里僵住了。然后 Harry 去旅行了,现在 Sally 只好去找管理员放开锁,这种情况会导致不必要的耽搁和时间浪费。
-
锁定可能导致不必要的线性化开发。如果 Harry 编辑一个文件的开始,Sally 想编辑同一个文件的结尾,这种修改不会冲突,设想修改可以正确的合并到一起,他们可以轻松的并行工作而没有太多的坏处,没有必要让他们轮流工作。
-
锁定可能导致错误的安全状态。假设 Harry 锁定和编辑一个文件 A,同时 Sally 锁定并编辑文件 B,如果 A 和 B 互相依赖,这种变化是必须同时作的,这样 A 和 B 不能正确的工作了,锁定机制对防止此类问题将无能为力—从而产生了一种处于安全状态的假相。很容易想象 Harry 和 Sally 都以为自己锁住了文件,而且从一个安全,孤立的情况开始工作,因而没有尽早发现他们不匹配的修改。
说明:以上内容摘自TortoiseSVN帮助文档.