linux下 svn 部署

1.安装Subversion 版本管理器

使用命令查看是否安装subversion 版本

ts@svn --version
svn, version 1.9.7 (r1800392)
....

没有安装centos 可以使用 sudo yum install subversion 安装。不过一般默认是的1.6版本的svn
建议装上1.9之后的版本管理器。可以为svn添加yum 源来安装。

ts@cd /etc/yum.repos.d/
ts@sudo touch wandisco-svn.repo

编辑 wandisco-svn.repo 输入以下内容保存

[WandiscoSVN]
name=Wandisco SVN Repo
baseurl=http://opensource.wandisco.com/centos/$releasever/svn-1.9/RPMS/$basearch/
enabled=1
gpgcheck=0

然后yum install subversion 安装 。

2. 创建svn仓库

#为仓库创建目录
ts@mkdir /data/repository
#创建仓库
ts@cd /data/repository
ts@svnadmin create project1
ts@cd project1
ts@ls -al
lrwxrwxrwx 1 root root   27 3月   7 11:22 conf
drwxr-sr-x 6 root root 4096 3月   7 11:22 db
-r--r--r-- 1 root root    2 3月   7 11:22 format
drwxr-xr-x 2 root root 4096 3月   7 11:22 hooks
drwxr-xr-x 2 root root 4096 3月   7 11:22 locks
-rw-r--r-- 1 root root  229 3月   7 11:22 README.txt

3.配置仓库conf管理权限

认证管理通过authz来设置用户在仓库中对应路径的权限。

ts@cd conf
ts@ls 
authz  passwd  svnserve.conf
ts@vim authz
image.png
#用户密码管理
ts@vim  passwd
image.png

配置svn服务认证方式

ts@vim svnserve.conf

基本按图配置完就差不多了。


image.png

4. 多项目权限管理。

因为每创建一个仓库都会生成conf 目录来管理当前仓库权限。如果你按照这样设置,开始几个仓库管理,没什么问题,但仓库多了管理就是个繁琐的工作了。或许你一个仓库通过不同目录管理不同的代码,但感觉这样不科学,一个仓库混合着各种各样的代码。

这里通过使用linux下的软链来实现一个配置conf来管理所有仓库。

#创建你的svn配置目录
ts@ mkdir svn_config
#复制一份你创建仓库的config到svn_config目录中
ts@ cp resp/conf/*  svn_config/
#删掉你的仓库的conf
ts@ rm -rf resp/conf
#创建软连接
ts@ln -s /home/ts/svn_config  resp/conf
# 查看目录
ts@ls -al resp
drwxr-xr-x 5 root root 4096 Mar 24 12:19 .
drwxr-xr-x 5 root root 4096 Mar 24 12:18 ..
lrwxrwxrwx 1 root root   27 Mar 24 12:19 conf -> /home/ts/svn_config
drwxr-sr-x 6 root root 4096 Mar  7 11:22 db
-r--r--r-- 1 root root    2 Mar  7 11:22 format
drwxr-xr-x 2 root root 4096 Mar  7 11:22 hooks
drwxr-xr-x 2 root root 4096 Mar  7 11:22 locks
-rw-r--r-- 1 root root  229 Mar  7 11:22 README.txt

现在你可以在svn_config 对你创建的仓库进行管理了。

image.png

如果你觉得上面创建软连接操作麻烦。就简单写个简单脚本仓库的时候自动关了这个svn_config就可以。
例如这样创建一个脚本create_resp.sh输入一下shell:

cd /data/repository  #你的仓库目录
svnadmin create $1  #输入的第一个参数 仓库名
cd $1 
rm -rf conf
ln -s /home/ts/svn_config conf  #你的svn config 配置目录

启动svn服务

svnserve -d -r /仓库目录/ --listen-port=8099 --log-file=/var/log/svn-server.log

推荐阅读更多精彩内容