cent os svn服务器搭建

进入公司,发现公司开发员工每个人用svn客户端工具链接svn,都具有管理权限,所有目录都可以看见,这样很容易造成误操作。

后来跟开发人员商量了一下,重新部署svn服务器


yum源的svn包版本1.6,官方最新源码版本1.9.2

1.源码安装 svn(subversion)

下面是个人写了个脚本

#!/bin/bash
DIR=/usr/local/src
yum -y install gcc gcc-c++ make openssl libtool
cd $DIR
subversion-1.9.2.tar.gz
apr-1.5.2.tar.gz
svn/apr-util-1.5.4.tar.gz
sqlite-amalgamation-3090200.zip
zlib-1.2.8.tar.gz


tar -zxvf apr-1.5.2.tar.gz
tar -zxvf apr-util-1.5.4.tar.gz
unzip sqlite-amalgamation-3090200.zip
tar -zxvf subversion-1.9.2.tar.gz
tar -zxvf zlib-1.2.8.tar.gz


cd $DIR/apr-1.5.2
./configure --prefix=/usr/local/apr
make && make install


cd $DIR/cd apr-util-1.5.4
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
make && make install


cd $DIR/cd zlib-1.2.8
./configure
make && make install


cd $DIR
mv sqlite-amalgamation-3090200 subversion-1.9.2/sqlite-amalgamation
cd $DIR/subversion-1.9.2
./configure --prefix=/data/svn --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util
make && make install

已经安装好

2.创建svn版本库

svnadmin create /home/svn_data/部门名称(好分辨)  这里可以创建多个(我分别创建了android,ios,chanpin)

cp /home/svn_data/android/conf/authz passwd /home/svn_data

从其中一个版本库中将authz passwd拷贝到根目录下/home/svn_data  方便管理多个版本库,

3.编辑每个版本库的配置文件

vim /home/svn_data/android/conf/svnserver.conf

[general]

anon-access = none 匿名用户权限

auth-access = write 认证用户权限

password-db = /home/svn_data/passwd 指定用根目录下的用户配置文件

authz-db = /home/svn_data/authz 指定用根目录下的版本库权限分配文件

realm = Android 登陆的提示信息

[sasl]

保存退出

4.配置用户账户密码和版本库权限分配

vim /home/svn_data/passwd   

用户名  =  密码

test1 = 123

test2 = 123

test3 = 123

vim /home/svn_data/authz

admin = test1,test2 组分配,test1 test2属于admin用户组

admin1 = test3

[android:/]    版本库名称根目录

@admin = rw admin组用户可读写

可以写多个,根据自己公司的需求,

5.开启svn服务

svnserver -d -r /home/svn_data     指定目录为svn根目录,

可以通过svn客户端测试使用

6.在cent os 服务器上做checkout 来同步上传的代码

svn co svn://localhost/android /home/svn_checkout      可做定时任务,现在/home/svn_checkout目录下面就会出现开发人员上传的代码(不在本地做checkout,是看不见代码的)


7.扩展,对版本库下级目录做权限分配

通过客户端,在android下面创建个android1的目录,只想test1用户访问,其他人不允许访问

编辑authz配置文件

vim /home/svn_data/authz

[android:/android1]

@admin1 = rw      这样就可以了, 访问的路径就是svn co svn://localhost/android/android1     

以此类推, 可以创建很多目录,并对每个目录做权限分配。


遇到登陆问题,如何换登陆用户,(清空全部认证数据,在登陆就会提示输入用户密码,供测试使用)


下面提供下,svn备份和迁移

svnadmin hotcopy 版本路径 备份路径

例如——

svnadmin hotcopy /data/svn_data/ios /data/back/ios

迁移——

将备份的目录,进行压缩,同步到需要迁移的机器,解压即可,使用svnserver -d -r 目录   启动




原文地址:https://www.cnblogs.com/jonnter/p/7725230.html