SVN管理
简介
svn: 代码版本管理工具,使用简单
安装
# 安装httpd svn mod_dav)svn模块
yum -y install subversion httpd mod_dav_svn
# 检查模块是否安装成功
ll /etc/httpd/modules/ | grep svn
-rwxr-xr-x. 1 root root 13456 8月 17 2015 mod_authz_svn.so
-rwxr-xr-x. 1 root root 155360 8月 17 2015 mod_dav_svn.so
svn配置
# 创建svn仓库目录
mkdir -p /mnt/rhd/svn-repos
# 创建svn版本库
cd /mnt/rhd/svn-repos && svnadmin create repo1
# 修改用户组及权限
chown -R apache.apache repo1/
# 修改当前仓库配置文件
[general]
anon-access = none # 关闭匿名访问
auth-access = write # 验证用户可写
password-db = /mnt/rhd/svn-repos/repo1/conf/htpasswd # 指向验证用户名密码的数据文件 passwd
authz-db = /mnt/rhd/svn-repos/repo1/conf/authz # 指向验证用户的权限配置文件 authz
[sasl]
http配置
# 配置apache通过mod_dav_svn模块访问svn服务
cat /etc/httpd/conf.d/svn.conf
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so
<Location /svn>
DAV svn
SVNParentPath /mnt/rhd/svn-repos # 仓库路径
AuthType Basic
AuthName "SVN repose Auth" # apache认证时弹出的消息
AuthUserFile /mnt/rhd/svn-repos/repo1/conf/htpasswd # passwd存储用户名和密码的路径
AuthzSVNAccessFile /mnt/rhd/svn-repos/repo1/conf/authz # 存放用户权限的路径
Satisfy Any
Require valid-user
# </LimitExcept>
</Location>
注: SVNpath 和SVNParentPath区别
SVNParentPath是在仓库目录的上一级。
SVNPath就是在仓库的目录下
两个不同的参数
SVNParentPath /var/www/svn-repos
或者
SVNPath /var/www/svn-repos/repo1
两种访问的模式不一样,SVNParentPath就是访问地址/svn/后面要加仓库名称,而另外一个不用加,直接/svn/就是仓库了。
# 启动httpd服务
systemctl enable httpd --now
svn版本库介绍
ll /mnt/rhd/svn-repos/repo1/
总用量 16
drwxr-xr-x. 2 apache apache 51 3月 25 15:41 conf
drwxr-xr-x. 3 apache apache 25 4月 9 2018 dav
drwxr-sr-x. 7 apache apache 4096 7月 30 17:02 db
-r--r--r--. 1 apache apache 2 4月 9 2018 format
drwxr-xr-x. 2 apache apache 4096 4月 9 2018 hooks
drwxr-xr-x. 2 apache apache 39 4月 9 2018 locks
-rw-r--r--. 1 apache apache 229 4月 9 2018 README.txt
# conf目录: 是这个仓库的配置文件(仓库的用户访问账号、权限等)
# db目录: 就是所有版本控制的数据存放文件
# format文件: 是一个文本文件,里面只放一个整数,表示当前文件库配置的版本号
# hooks目录: 放置hook脚本文件的目录
# locks目录: 用来放置subsersion监控锁定数据的目录,用来追踪存取文件库的客户端
# dav目录: 是提供apache与mod_dav_svn使用的目录,让他们存储内部数据,刚开始创建时此目录没有
创建用户密码
# 使用htpasswd创建用户,首次创建用户。位置和subversion.conf里的一样,给第一个用户添加密码时要加c,意思是创建这个文件,以后就不用加了,后期通过httpd服务器访问svn时,会使用这个文件中的用户信息验证用户和密码。执行添加用户命令必须在passwd文件所在的目录下执行,否则会另外创建一个passwd文件,之前的passwd文件和配置会失效
cd /mnt/rhd/svn-repos/repo1/conf/
htpasswd -cb passwd test1 123456789
参数详解:
-c: 创建passwd文件,默认为MD5加密
-b: 在命令行中一并输入用户名和密码而不是根据提示输入密码
注:
第二次创建不需要添加-c
# 添加用户
htpasswd -b passwd 用户名 密码
# 删除用户
htpasswd -D passwd 用户名
# 修改用户密码
htpasswd passwd 用户名
创建版本库权限控制文件
cat /mnt/rhd/svn-repos/repo1/conf/authz
[groups] # 表示群组设置
[/] # 表示在所有仓库的根目录下
test = rw # 表示test用户对所有仓库根目录下的软件版本库有rw权限
test1=r # 表示test1用户对所有仓库根目录下的软件版本库有r权限
[repo1:/] # 表示repo1仓库的访问权限
test2 = rw # 在repo1仓库中test2有读写权限
[repo1:/ch] # 表示repo1仓库下/ch目录访问权限
test3=rw # 在repo1仓库/ch目录test3有读写权限
web访问
# 重启httpd服务
systemctl restart httpd
# 访问
http://httpIP/svn/repo1
win客户端使用
# 下载地址https://svnbucket.com,选择语言
# 安装完成后,点击图标右键---选择SVN Checkout --------> 输入版本库url+++路径
标签:svn,repo1,repos,仓库,conf,apache
From: https://www.cnblogs.com/kkit/p/18333946