系统环境RHEL5.4最小化安装(关iptables,关selinux)+ssh+yum一,安装必须的软件包.yuminstallsubversion(SVN服务器)mysql-server(用于codestriker)httpdmod_dav_svnmod_perl(用于支持WEB方式管理SVN服务器)sendmail(用于配置用户提交代码后发邮件提醒)wgetgcc-c++makeunzipperl*(必备软件包)ntsysvvim-enhanced(可选)二,基本的SVN服务器配置1,新建一个目录用于存储SVN所有文件#mkdir/home/svn2,新建一个版本仓库#svnadmincreate/home/svn/project3,初始化版本仓库中的目录#mkdirprojectproject/serverproject/clientproject/test(建立临时目录)#svnimportproject/file:///home/svn/project-m"初始化SVN目录"#rm-rfproject(删除临时建立的目录)4,添加用户要添加SVN用户非常简单,只需在/home/svn/project/conf/passwd文件添加一个形如“username=password"的条目就可以了.为了测试,我添加了如下内容:[users]#harry=harryssecret#sally=sallyssecretpm=pm_pwserver_group=server_pwclient_group=client_pwtest_group=test_pw5,修改用户访问策略/home/svn/project/conf/authz记录用户的访问策略,以下是参考:[groups]project_p=pmproject_s=server_groupproject_c=client_groupproject_t=test_group[project:/]@project_p=rw*=[project:/server]@project_p=rw@project_s=rw*=[project:/client]@project_p=rw@project_c=rw*=[project:/doc]@project_p=rw@project_s=rw@project_c=rw@project_t=rw*=以上信息表示,只有pm有根目录的读写权,server_group能访问server目录,client_group能访问client目录,所有人都可以访问doc目录.6,修改svnserve.conf文件,让用户和策略配置升效.svnserve.conf内容如下:[general]anon-access=noneauth-access=writepassword-db=/home/svn/project/conf/passwdauthz-db=/home/svn/project/conf/authz7,启动服务器#svnserve-d-r/home/svn8,测试服务器#svncosvn://192.168.60.10/projectAuthenticationrealm:92731041-2dae-4c23-97fd-9e1ed7f0d18dPasswordfor'root':Authenticationrealm:92731041-2dae-4c23-97fd-9e1ed7f0d18dUsername:server_groupPasswordfor'server_group':svn:Authorizationfailed(server_group没用根目录的访问权)#svncosvn://192.168.60.10/projectAuthenticationrealm:92731041-2dae-4c23-97fd-9e1ed7f0d18dPasswordfor'root':Authenticationrealm:92731041-2dae-4c23-97fd-9e1ed7f0d18dUsername:pmPasswordfor'pm':Aproject/testAproject/serverAproject/clientCheckedoutrevision1.(测试提取成功)#cdproject/server#vimmain.c#svnaddmain.c#svncommitmain.c-m"测试一下我的C程序,看什么看,不行啊??"Addingmain.cTransmittingfiledata.Committedrevision2.(测试提交成功)三,配置SVN服务器的HTTP支持1,转换SVN服务器的密码由于SVN服务器的密码是明文的,HTTP服务器不与支持,所以需要转换成HTTP支持的格式。我写了一个Perl脚本完成这个工作.脚本内容如下:#cd/home/svn/project/conf/#catPtoWP.pl#!/usr/bin/perl#writebyhuabo,2009-11-20usewarnings;usestrict;#openthesvnpasswdfileopen(FILE,"passwd")ordie("Cannotopenthepasswdfile!!!\n");#cleartheapachepasswdfileopen(OUT_FILE,">webpasswd")ordie("Cannotopenthewebpasswdfile!!!\n");close(OUT_FILE);#beginforeach(){if($_=~m/^[^#].*=/){$_=~s/=//;`htpasswd-bwebpasswd$_`;}}#./PtoWP.pl(先给该脚本加可执行权限,然后执行以转换密码)AddingpasswordforuserpmAddingpasswordforuserserver_groupAddingpasswordforuserclient_groupAddingpasswordforusertest_group现在目录下会多一个webpasswd文件。2,修改httpd.conf,添加关于SVN服务器的内容编辑/etc/httpd/conf/httpd.conf,在最后添加如下信息:DAVsvnSVNPath/home/svn/project/AuthTypeBasicAuthName"svnforproject"AuthUserFile/home/svn/project/conf/webpasswdA...