svn

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+++路径
posted @ 2024-07-31 09:54  itk  阅读(43)  评论(0)    收藏  举报