Svn服务器部署
svn简介
Subversion是一个免费/开源的版本控制系统, Subversion 能够跨越时间地对文件和目录, 以及它们的修改进行管理. 这就容许你恢复 数据的旧版本, 或检查数据的修改历史. 因为这个特色, 不少人把版本控制系统 当作是一种 “时间机器”.
Svn的组件
- svn 客户端命令行工具
- svnversion 用于报告工做副本状态 (就项目的版本号而言) 的工具
- svnlook能够直接检查仓库的工具
- svnadmin 用于建立, 调整或修复 Subversion 仓库的工具
- mod_dav_svn Apache HTTP 服务器插件, 该插件容许用户经过网络访问仓库
- svnserve 一个定制的, 可独立运行的服务器程序, 能够以守护进程方式运行, 也能够被 SSH 调用, 这是另外一种容许用户经过网络访问仓库的方法
- svndumpfilter 过滤 Subversion 仓库转储数据流的程序
- svnsync 能够跨越网络对仓库进行增量镜像备份的程序
- svnrdump 能够跨越网络对仓库历史进行转储和加载的程序
- svnmucc 该工具支持在没有工做副本的状况下, 在一个单独的提交中对多个 仓库执行基于 URL 的操做
Svn 服务端运行方式
- server端VisualSVN
- client端TrotoiseSVN
linux
- subversion
基础环境
subversion软件安装
yum install subversion mod\_svn_dav httpd
Svn服务器部署
- 库目录/home/SVN_REPO
- 账号验证文件目录/etc/subversion
- 访问路径http://ip_address/svn/
建立密码验证文件
示例建立user01的svn用户
cd /etc/subversion
htpasswd -c svnuser user01linux
htpasswd命令用法
- -c:建立一个加密文件;
- -n:不更新加密文件,只将加密后的用户名密码显示在屏幕上;
- -m:默认采用MD5算法对密码进行加密;
- -d:采用CRYPT算法对密码进行加密;
- -p:不对密码进行进行加密,即明文密码;
- -s:采用SHA算法对密码进行加密;
- -b:在命令行中一并输入用户名和密码而不是根据提示输入密码;
- -D:删除指定的用户。
示例
利用htpasswd命令添加用户 (用户user01,密码123456)
htpasswd -bc svnuser user01 123456算法
在原有密码文件中增长下一个用户(更新用户密码与之相同)
htpasswd -b svnuser user02 123456apache
删除一个用户
htpasswd -D svnuser user02windows
修改httpd配置
不一样的系统路径略有不一样
vi /etc/httpd/conf.modules.d/10-subversion.conf
服务器
<location /svn>
DAV svn
SVNListParentPath On
SVNParentPath /home/SVN_REPO/
AuthType Basic
AuthName "Authorization Realm"
AuthUserFile /etc/subversion/svnuser
Require valid-user
<IfModule mod_authz_svn.c>
#AuthzSVNAccessFile /etc/httpd/authz
AuthzSVNReposRelativeAccessFile authz
</IfModule>
</location>
建立svn库
建立一个名为svn_test库
cd /home/SVN_REPO
svnadmin create svn_test
配置访问权限
添加user01对svn_test根目录读写权限
cd /home/SVN_REPO/svn_test/conf
vi authz
[svn_test:/]
user01 = rw
authz权限文件语法
[<仓库名称>:<仓库路径>]
内容 ==书写方式
用户名 = 权限(r, rw) user01 = r
或者:
@组名 = 权限(r, rw) @group = r