日期:2014-05-16  浏览次数:20713 次

一个关于SVN的问题
背景描述: 
现在有一台中继服务器,它有三个用户,分别是admin,user1,user2。

我使用admin登录中继服务器,安装并配置svn服务器端VisualSVN-Server-2.7.3。在服务器端创建了三个svn用户,分别是svnadmin,svnuser1,svnuser2

然后我使用user1登录该中继服务器,安装并配置svn客户端TortoiseSVN-1.8.4.24972-x64-svn-1.8.5。

问题1:
现在中继服务器的user1和user2用户同时在修改svn版本库中的同一个文件,user1使用svnuser1用户修改该文件,而user2使用svnuser2修改该文件。此时会发生冲突吗?为什么?


问题2:
当我直接修改版本库中的某一个文件时,怎样设置svn自动获取锁定,修改后保存会自动解锁?
这样避免他人也想修改该文件。在网上查的资料说是设置如下:

[code text]
enable-auto-props = yes
*.* = svn:needs-lock=*
* = svn:needs-lock=*

可是该方法只是在添加或者import时才实现“锁定-修改-解锁”模型。
我想让它在修改时也能自动获得锁定,保存时自动解锁,该怎样设置?

谢谢!
SVN服务器端 多个用户同时使用svn svn客户端 svn自动获得锁定 svn自动解锁

------解决方案--------------------
从http://i18n-zh.googlecode.com/svn/www/svnbook-1.4/svn.advanced.locking.html上面抠了一段,希望对楼主有帮助。
例如,假定Harry锁定了一个图片,并开始编辑。同时,几英里之外的Sally希望做同样的工作,她没想到运行svn status --show-updates,她不知道Harry已经锁定了文件。她花费了数小时来修改文件,当她真被提交时发现文件已经被锁定或者是她的文件已经过期了。她的修改不能和Harry的合并,他们中的一人需要抛弃自己的工作,许多时间被浪费了。

Subversion针对此问题的解决方案是提供一种机制,提醒用户在开始编辑以前必须锁定这个文件,这个机制就是提供一种特别的属性--svn:needs-lock。当有这个值时,除非用户锁定这个文件,否则文件一直是只读的。当得到一个锁定令牌(运行svn lock的结果),文件变成可读写,当释放这个锁后,文件又变成只读。