SVN冲突的处理方法,合并分支,SVN整合eclipse等等
1.拷贝%SVN_HOME%\mod_authz_svn.so和%SVN_HOME%\mod_dav_svn.so放入%APACHE_HOME%\modules下
2.修改%APACHE_HOME%\conf\httpd.conf文件,修改如下:
LoadModule dav_module modules/mod_dav.so(去掉前面的注释)
LoadModule dav_fs_module modules/mod_dav_fs.so(去掉前面的注释)
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
3.在httpd.conf文件的末尾添加如下内容:
<Location /svn>
DAV svn
SVNPath E:/svn/repository
</Location>
此语句块的作用是将SVN的服务器目录映射到访问Apache的虚拟路径svn,就好像我们在配置Tomcat时,增加一个Context一样。即用户访问/svn地址时,Apache会自动将该请求转到E:\svn\repository
整合的权限控制问题:
大家这时会发现即使我们在SVN中设置好了需要登录才能读取文件,但是使用Apache方式通过浏览器依然不需要登录就可以浏览。这是由于SVN与Apache是采用不同的方式来控制访问权限的,如果你使用svn协议来访问,那么就必须输入登录信息才能访问,而如果使用http协议就不需要输入登录信息就可以访问。
4.我们在</Location>之前输入如下信息:
<Location /svn>
DAV svn
SVNPath E:/svn/repository
AuthType Basic //验证类型采用基本类型
AuthName "Subversion Repository" //表示出现登录对话框时,窗口的标题名
AuthUserFile E:/passwd/passwords //表示用户登录信息的存放文件,稍后创建
Require valid-user //表示只有认证的用户才能访问,否则匿名用户也可以访问
</Location>
5.密码文件的创建(使用%apache_home%\bin\htpasswd命令)
在命令行中输入:htpasswd -c E:/passwd/passwords hello (hello为用户名) (-c表示创建文件 -p使用明文密码)
提示如下: Automatically using MD5 format.
New password:
6.父子库的配置说明SVNParentPath,即父库只用来管理子库,每个子库实际上对应一个项目的管理
<Location /svn>
DAV svn
SVNParentPath E:/svn/repository
AuthType Basic //验证类型采用基本类型
AuthName "Subversion Repository" //表示出现登录对话框时,窗口的标题名
AuthUserFile E:/passwd/passwords //表示用户登录信息的存放文件,稍后创建
Require valid-user //表示只有认证的用户才能访问,否则匿名用户也可以访问
</Location>
备注:E:/svn/repository下面必须有子库才可以使用SVNParentPath(详见浪曦的PDF)
7.权限控制:对于匿名用户可以读,但是只对认证用户开放写操作。
<Location /svn>
DAV svn
SVNParentPath E:/svn/repository
AuthType Basic //验证类型采用基本类型
AuthName "Subversion Repository" //表示出现登录对话框时,窗口的标题名
AuthUserFile E:/passwd/passwords //表示用户登录信息的存放文件,稍后创建
<LimitExcept GET PROPFIND OPTIONS REPORT>
Require valid-user
</LimitExcept>
</Location>
8.权限级次配置
<Location /svn>
DAV svn
SVNParentPath E:/svn/repository
AuthzSVNAccessFile E:/passwd/policy //此文件中配置了用户对SVN访问的策略文件
AuthType Basic //验证类型采用基本类型
AuthName "Subversion Repository" //表示出现登录对话框时,窗口的标题名
AuthUserFile E:/passwd/passwords //表示用户登录信息的存放文件,稍后创建
Require valid-user //表示只有认证的用户才能访问,否则匿名用户也可以访问
</Location>
在policy中增加如下内容:
[helloworld:/] helloworld子库。。。。。。
hello=rw 可读可写
google=r 只读不可写
microsoft= 不可读不可写
备注:使用此功能要删除保存在本地的用户认证信息(删除\Subversion\auth这个子目录)
9.SVN中组的概念
在公司里都有不同的项目组,每个组对应自己的仓库,一个组有很多组员,如果对于每个组员都去指定他的访问权限显得十分繁琐,我们可
以利用SVN中组的概念来对用户进行分类,这样大大方便了我们的操作。
将policy文件修改为如下:
[groups]
developers=hello,google
testers=microsoft
[helloworld:/]
@developers=rw //用@developers来引用之前定义好的组
@testers=
[subsvn:/]
@developers=rw
@testers=rw