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
#用户密码管理
ts@vim passwd
配置svn服务认证方式
ts@vim svnserve.conf
基本按图配置完就差不多了。
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 对你创建的仓库进行管理了。
如果你觉得上面创建软连接操作麻烦。就简单写个简单脚本仓库的时候自动关了这个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