subversion 配置

STEP.1 安装

yum install subversion

STEP.2 创建SVN库

mkdir /var/svn/repos
svnadmin create /var/svn/repos/test //建立test库```
包含conf, db,format,hooks, locks, README.txt
#### STEP.3 配置
`cd /var/svn/repos/test/conf`

编辑authz, passwd, svnserve.conf 3个配置文件
authz权限配置
passwd用户
svnserve.conf配置SVN相关

1.authz 示例
`[groups]
test = justmepzy`

`[test:/]
@test = rw`

2.passwd 示例
`[users]
justmepzy = 123456`

3.svnserve.conf配置

anon-access = none # 使非授权用户无法访问
auth-access = write # 使授权用户有写权限
password-db = /var/svn/passwd //默认同一目录的passwd文件,方便给个svn库共用使用同一个passwd
authz-db = /var/svn/authz //和password-db一样`

STEP.4 启动

svnserve -d -r /var/svn/repos

如果已经有svn在运行,可以换一个端口运行

svnserve -d -r /var/svn/repos --listen-port 3391

然后就可以用TortoiseSVN svn://example.com/test访问
注:svnserver修改配置文件后可以立即生效,不需要重启服务

附:Apache+SVN
1.先安装mod_dav_svn模块
2.配置:vi /etc/httpd/conf.d/subversion.conf
LoadModule dav_svn_module modules/mod_dav_svn.so
LoadModule authz_svn_module modules/mod_authz_svn.so

<Location /test>
DAV svn
SVNPath /var/svn/repos/test //指定创建的svn项目库目录
AuthType Basic //认证的类型
AuthName ‘test’
AuthUserFile /etc/svn_auth_file //用户密码文件
AuthzSVNAccessFile /var/svn/authz //svn的权限管理文件
Require valid-user //指定请求的必须是验证的用户
</Location>
3.添加用户

htpasswd -b /etc/svn_auth_filel username password
htpasswd --help

-c 创建一个加密文件

-n 不更新加密文件,只将apache htpasswd命令加密后的用户名密码显示在屏幕上

-m 默认apache htpassswd命令采用MD5算法对密码进行加密

-d apache htpassswd命令采用CRYPT算法对密码进行加密

-p apache htpassswd命令不对密码进行进行加密,即明文密码

-s apache htpassswd命令采用SHA算法对密码进行加密

-b 在apache htpassswd命令行中一并输入用户名和密码而不是根据提示输入密码

-D 删除指定的用户

4.也许会使用提交时部署到www
修改svn/test/hooks/post-commit

chmod 755 post-commit
export LC_CTYPE=en_US.UTF-8
if (svnlook log -r $REV /var/svn/repos/test | grep “deploy” )
then
svn export file:///var/svn/repos/test/ /home/http/html/test_website –force
fi

PS:以上测试环境 CentOS 6.2 64位 Apache 2.2