CentOS:svn服务器安装
SVN及相关模块的安装
yum install subversion mod_dav_svn mod_authz_ldap
初始化svn库
mkdir /home/svn
svnadmin create /home/svn/repos
设置Apache的访问权限
chown -R apache.apache repos
然后修改配置文件
vim /etc/httpd/conf.d/subversion.conf
主要修改内容如下:
<Location /svn> DAV svn SVNParentPath /home/svn AuthType Basic AuthBasicProvider ldap AuthzLDAPAuthoritative off AuthLDAPURL "ldap://127.0.0.1:389/dc=brilliance,dc=com?uid?sub?(objectClass=*)" AuthName "Nice to meet you,but you know..." AuthzSVNAccessFile /home/svn/authz.conf Require valid-user </Location>
Svn地址:
http://192.168.1.9/svn/repos
重启Apache 即可
service httpd restart
附注: 若svn提交失败,提示Permission denied,是因为svnadmin创建库时是root用户,导致apache无法访问。解决方式:
chown –R apache.apache /home/svn/documents
chmod 775 /home/svn/documents
SVN权限配置
创建源
初始化svn库
mkdir /home/svn
svnadmin create /home/svn/repos
设置Apache的访问权限
chown -R apache.apache repos
权限配置
研发中心的SVN采用Apache+Ldap配置,用户密码认证采用LDAP,而对于SVN自身的访问权限,采用svn的配置文件进行。
- svn源父文件夹 /home/svn/
- svn access file: /home/svn/authz.conf
vim /home/svn/authz.conf
下面是示例配置
prj1=zhangsan, lisi prj2=wangwu [projects:/01/] @prj1=rw *= [projects:/02/] @prj2=rw *= [doc:/] *=r
对于以上配置,那么doc源,都有只读权限;对于projects源下的01和02文件夹,分别只有prj1和prj2两个组能读写
备份
Svn完全备份:
svnadmin dump /home/source/documents –-revision 0:head | gzip >documents.gz
增量备份:
svnadmin dump /home/source/documents –-revision 978:head --incremental| gzip >documents.gz
将备份拷贝到新服务器上
scp documents.gz root@192.168.1.9:/home/backupfiles
以root身份登录到192.168.1.9,解压备份文件:
gunzip documents.gz
导入svn备份文件: 如果不存在版本库,首先应该创建版本库:
svnadmin create /home/svn/documents
svnadmin load /home/svn/documents < documents
即完成svn迁移。