svn 版本库 一、svn服务器安装 1.创建资源库 svnadmin create e:/svnbase 注:这里会在svnbase下面产生几个文件夹,其中一个是conf,里面含有svnserve.conf,passwd,authz 这三个文件会在下文用到 2.注册为windows服务 sc create svnservice binpath= "D:/Program Files/svn-win32-1.6.6/bin/svnserve.exe --service -r e:/svnbase" displayname= "SVNService" depend= Tcpip start=auto 删除服务 sc delete SVNService 二、配置svn服务器 1.编辑项目库设置文件svnserve.conf 取消password-db=passwd注释 password-db=passwd 修改 anon-access=none auth-access=write 取消authz-db = authz注释 authz-db = authz 2.svnservice 用户文件passwd编辑 编辑passwd 添加“用户名 = 密码” 如:gtis = gtis 3.目录访问权限分配表authz [groups] #放置分组,同一分组以逗号分隔 teamLeaders = boss1,boss2 workers = worker1,work2 [/] #根目录 * = r @teamLeaders = rw [/diji] #地籍系统目录 #父目录分配的权限可以传递到子目录,所以要加入* = ,表示别人无法读取写入 *= work1 = rw @teamLeaders = rw 三、apache http服务器安装 1.安装apache服务器 2.apache svn module安装 编辑安装目录下conf/httpd.conf文件 在http.conf的末尾加上 #svn模块 LoadModule dav_svn_module modules/mod_dav_svn.so LoadModule authz_svn_module modules/mod_authz_svn.so <Location /repos> DAV svn SVNPath e:/SvnBase </Location> 将svn服务器安装目录下bin目录中mod_dav_svn.so,mod_authz_svn.so复制到 apache安装目录的modules目录下面。 启动apache服务器。http://localhost/repos 如果apache启动报如下错误: D:/Program Files/Apache Software Foundation/Apache2.2/bin>httpd.exe -k start httpd.exe: Syntax error on line 127 of D:/Program Files/Apache Software Foundati on/Apache2.2/conf/httpd.conf: Cannot load D:/Program Files/Apache Software Found ation/Apache2.2/modules/mod_dav_svn.so into server: /xd5/xd2/xb2/xbb/xb5/xbd/xd6 /xb8/xb6/xa8/xb5/xc4/xb3/xcc/xd0/xf2/xa1/xa3 将Subversion bin 下所有DLL文件拷贝到 Apache2.2/bin 目录下,注意拷贝到“bin“目录而不是modules 目录。期间会出现几个DLL文件重复 ,替换重启apache就ok。 3.设置apache中的svn 使用apache bin目录下面的htpasswd 按照它的help提示生成一个用户名文件, 其中的用户名和密码与上文svn passwd文件中的用户名密码对应。 编辑httpd.conf 将刚才的location替换为如下: <Location /repos> DAV svn SVNPath e:/SvnBase AuthType Basic AuthName "svn repos" AuthUserFile E:/password.conf AuthzSVNAccessFile E:/SvnBase/conf/authz Require valid-user </Location> 其中参数解释为: DAV svn 告诉Apache哪个模块负责服务像那样的URL--在这里就是Subversion模块 SVNListParentPath on 在Subversion 1.3及更高版本中,这个指示器使得Subversion列出由SVNParentPath指定的目录下所有的版本库 SVNParentPath e:/SvnBase 告诉Subversion在目录e:/SvnBase下寻找版本库 AuthType Basic 启用基本的验证,比如用户名/密码对 AuthName "Subversion repositories" 当一个验证对话框弹出时,告诉用户这个验证是用来做什么的 AuthUserFile AuthUserFile E:/password.conf 指定AuthUserFile E:/password.conf用为密码文件用来验证用户的用户名及密码 AuthzSVNAccessFile E:/SvnBase/conf/authz 指定E:/SvnBase/conf/authz来限定各个用户或组在版本库中目录的访问权限 Require valid-user 限定用户只有输入正确的用户名及密码后才能访问这个路径 使用http://127.0.0.1/repos访问项目。