CentOS:svn服务器安装:修订间差异

来自WHY42
imported>Soleverlee
以“==Svn及相关模块的安装== <syntaxhighlight lang="bash"> yum install subversion mod_dav_svn mod_authz_ldap </syntaxhighlight> 初始化svn库 <syntaxhighlight l...”为内容创建页面
 
imported>Soleverlee
无编辑摘要
 
(未显示同一用户的3个中间版本)
第1行: 第1行:
==Svn及相关模块的安装==
==SVN及相关模块的安装==
<syntaxhighlight lang="bash">
<syntaxhighlight lang="bash">
yum install subversion mod_dav_svn mod_authz_ldap
yum install subversion mod_dav_svn mod_authz_ldap
第24行: 第24行:
   AuthBasicProvider ldap
   AuthBasicProvider ldap
   AuthzLDAPAuthoritative off
   AuthzLDAPAuthoritative off
   AuthLDAPURL "ldap://127.0.0.1:389/dc=brilliance,dc=com?uid?sub?(objectClass=*)"
   AuthLDAPURL "ldap://127.0.0.1:389/dc=riguz,dc=com?uid?sub?(objectClass=*)"
   AuthName "Nice to meet you,but you know..."
   AuthName "Nice to meet you,but you know..."
   AuthzSVNAccessFile /home/svn/authz.conf
   AuthzSVNAccessFile /home/svn/authz.conf
第45行: 第45行:
</syntaxhighlight>
</syntaxhighlight>


==SVN权限配置==
==创建源==
初始化svn库
<syntaxhighlight lang="bash">
mkdir /home/svn
svnadmin create /home/svn/repos
</syntaxhighlight>
设置Apache的访问权限
<syntaxhighlight lang="bash">
chown -R apache.apache repos
</syntaxhighlight>
==权限配置==
研发中心的SVN采用Apache+Ldap配置,用户密码认证采用LDAP,而对于SVN自身的访问权限,采用svn的配置文件进行。
*svn源父文件夹 /home/svn/
*svn access file: /home/svn/authz.conf
<source lang="bash">
vim /home/svn/authz.conf
</source>
下面是示例配置
<pre>
prj1=zhangsan, lisi
prj2=wangwu
[projects:/01/]
@prj1=rw
*=
[projects:/02/]
@prj2=rw
*=
[doc:/]
*=r
</pre>
对于以上配置,那么doc源,都有只读权限;对于projects源下的01和02文件夹,分别只有prj1和prj2两个组能读写
==备份==
Svn完全备份:
<syntaxhighlight lang="bash">
svnadmin dump /home/source/documents –-revision 0:head | gzip >documents.gz
</syntaxhighlight>
增量备份:
<syntaxhighlight lang="bash">
svnadmin dump /home/source/documents –-revision 978:head  --incremental| gzip >documents.gz
</syntaxhighlight>
将备份拷贝到新服务器上
<syntaxhighlight lang="bash">
scp documents.gz root@192.168.1.9:/home/backupfiles
</syntaxhighlight>
以root身份登录到192.168.1.9,解压备份文件:
<syntaxhighlight lang="bash">
gunzip documents.gz
</syntaxhighlight>
导入svn备份文件:
如果不存在版本库,首先应该创建版本库:
<syntaxhighlight lang="bash">
svnadmin create /home/svn/documents
svnadmin load /home/svn/documents < documents
</syntaxhighlight>
即完成svn迁移。
[[Category:Linux/Unix]]
[[Category:Linux/Unix]]

2015年3月19日 (四) 03:13的最新版本

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=riguz,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迁移。