首页 > 活着 > linux下SVN+apache搭建

linux下SVN+apache搭建

下载包
wget http://syslab.comsenz.com/downloads/linux/httpd-2.2.11.tar.gz
wget http://subversion.tigris.org/downloads/subversion-1.5.3.tar.gz

1. 编译apache
tar zxvf httpd-2.2.11.tar.gz
cd httpd-2.2.11
./configure –enable-dav –enable-dav-fs –enable-so –enable-ssl –enable-maintainer-mode -prefix=/usr/local/apache2 –enable-mods-shared=all

make && make install

2. 编译subversion

tar zxvf subversion-1.5.3.tar.gz
cd subversion-1.5.3
./configure –prefix=/usr/local/subverion –with-apxs=/usr/local/apache2/bin/apxs –with-apr=/usr/local/src/httpd-2.2.11/srclib/apr/ –with-apr-util=/usr/local/src/httpd-2.2.11/srclib/apr-util –with-ssl
make && make install

3. 添加svn用户
useradd SVN

4. 创建仓库
/usr/local/subverion/bin/svnadmin create /home/SVN/lishiming

5. 测试svn
添加一个文件到仓库 /usr/local/subverion/bin/svn import /tmp/disk.txt file:///home/SVN/lishiming/disk.txt -m test
其中 命令格式为 svn import filename svn仓库路径 -m 说明
查看添加的文件信息 /usr/local/subverion/bin/svn list –verbose file:///home/SVN/lishiming/

6. 整合apache
vim /usr/local/apache2/conf/httpd.conf
在最后面加入

DAV svn
SVNPath /home/SVN/lishiming
AuthzSVNAccessFile /home/SVN/lishiming/conf/authz.conf
AuthType Basic
AuthName “Subversion”
AuthUserFile /home/SVN/authfile
Require valid-user

另外需要修改一下
User SVN
Group SVN

7. 添加认证用户
/usr/local/apache2/bin/htpasswd -c /home/SVN/authfile svntest

说明:第一次创建这个用户是需要加-c 选项,以后再次创建就不需要了,因为authfile 文件已经存在

8. 编辑用户权限
vim /home/SVN/lishiming/conf/authz.conf 内容如下:
[lishiming:/]
svntest = rw

9. 更改权限
chown -R SVN:SVN /home/SVN/

10. 重启apache
访问 10.0.2.111/lishiming/

SVN提交时强制添加注释
如果在linux环境中,则命名为pre-commit,并添加执行权限
——————————————————————————————————–
#!/bin/sh
REPOS=”$1″
TXN=”$2″
SVNLOOK=/opt/CollabNet_Subversion/bin/svnlook
LOGMSG=$($SVNLOOK log -t “$TXN” “$REPOS” | grep “[a-zA-Z0-9]” | wc -c)
if [ “$LOGMSG” -lt 10 ]; then
echo -e “\n Empty log message not allowed.Commit aborted!”1>&2
exit 1
fi
————————————————————————————————————
脚本命令解释
————————————————————————————————————
LOGMSG=$($SVNLOOK log -t “$TXN” “$REPOS” | grep “[a-zA-Z0-9]” | wc -c)
将提交的日志信息作为便来那个输入之后,将grep英文和数字的结果作为变量
if [ “$LOGMSG” -lt 10 ]; 传入变量来判断变量长度是否小于10
-eq 等于号 -gt 大于号 -lt小于号

echo 错误提示信息的时候必须重定向到 stderr ,即 1>&2
pre-commit 文件拷贝到 hooks 目录之后,需要 chmod 0755 pre-commit ,给 pre-commit 文件增加可执行权限(或者至少把文件owner改为 svn 服务运行用户并加上owner的x权限)

下载包 wget http://syslab.comsenz.com/downloads/linux/http […]

  1. 还没有评论
评论提交中, 请稍候...

留言

(Spamcheck Enabled)

Trackbacks & Pingbacks ( 0 )
  1. 还没有 trackbacks