- 准备
在ubuntu上搭建subversion版本管理工具,使用的是bitnami subversion。软件包中包含svn工具及Apache2。
资源下载地址:https://bitnami.com/stack/subversion
使用配置说明:https://docs.bitnami.com/general/apps/subversion/
- 安装
sudo ./bitnami-subversion-1.9.5-1-linux-x64-installer.run
安装过程中需要选择安装的路径及端口的配置。安装路径为/opt/svn目录下
- 配置
在安装完成svn后,其默认会创建一个空白的数据库。但是我在win7上的有多个SVN版本库,想让其放到一个目录下统一管理,所以需要修改响应的配置:
在svn目录下创建一个repositorys用于放置多个svn版本库,其作为所有svn版本库的父路径
sudo mkdir repositorys
修改apache2/conf/httpd.conf 配置文件
<Location /subversion>
DAV svn
#SVNPath "/opt/svn/repository/"
SVNParentPath "/opt/svn/repositorys"
SVNListParentPath on
#(连接类型设置 基本验证)
AuthType Basic
# (此处字符串内容修改为提示对话框标题)
AuthName "Subversion Repository"
# (此处修改为访问版本库用户的文件, 用apache 的htpasswd命令生成)
AuthUserFile /opt/svn/repositorys/users
#AuthzSVNAccessFile /opt/svn/repositorys/authz
#(此处修改为访问版本库权限的文件)
Require valid-user
</Location>
SVNParentPath:支持多个具备相同父目录的Subversion版本库。
SVNPath:只支持一个父目录的Subversion版本库
SVNPath /opt/svn/repository/ #如果你想对每个项目单独配置,使用该项
SVNParentPath /opt/svn/repositorys/ #设定一个根,所有项目均放在此目录下
其他配置可以参考bitnami提供的文档。
修改svn启动脚本/opt/svn/subversion/scripts/ctl.sh
#将repository 改为当前新的版本库repositorys
SVN_START="/opt/svn/subversion/bin/svnserve -d -r /opt/svn/repositorys --listen-port=3690 --pid-file=$SVN_PIDFILE"
- 导入版本库
sudo svnadmin create /opt/svn/repositorys/project1
sudo svnadmin load /opt/svn/repositorys/project1 < project1.dump
同样的命令,将需要管理的svn版本库以这种方式导入到当前svn。
- 修改访问权限
svn版本库导入到当前SVN Server后,其没有访问的权限要求,通过修改project1/conf/svnserve.conf 来使能权限
anon-access = none
auth-access = write
password-db = ../../passwd
authz-db = ../../authz
password及authz原本在每个svn 版本库里面都有一个,但是为了方便管理,所有的用户信息及访问权限信息都被指向了一个统一的用户管理文件中。
passwd/authz 中对用户及svn版本库访问权限设置。
- 启动svn
sudo ./opt/svn/ctlscritp.sh start