CentOS-6.3安装配置SVN

来源:互联网 发布:淘宝卖家账号出售价格 编辑:程序博客网 时间:2024/06/06 12:40

安装说明

系统环境:CentOS-6.3
安装方式:yum install (源码安装容易产生版本兼容的问题)
安装软件:系统自动下载SVN软件

 

检查已安装版本

#检查是否安装了低版本的SVN
[root@localhost /]# rpm -qa subversion

#卸载旧版本SVN
[root@localhost modules]# yum remove subversion

安装SVN

[root@localhost modules]# yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql

确认已安装了svn模块

[root@localhost /]# cd /etc/httpd/modules
[root@localhost modules]# ls | grep svn
mod_authz_svn.so
mod_dav_svn.so

验证安装

检验已经安装的SVN版本信息 
[root@localhost modules]# svnserve --version

svnserve,版本 1.6.11 (r934486)
编译于 Jun 23 2012,00:44:03

版权所有 (C) 2000-2009 CollabNet。 
Subversion 是开放源代码软件,请参阅 http://subversion.tigris.org/ 站点。 
此产品包含由 CollabNet(http://www.Collab.Net/) 开发的软件。

下列版本库后端(FS) 模块可用:

* fs_base : 模块只能操作BDB版本库。 
* fs_fs : 模块与文本文件(FSFS)版本库一起工作。

Cyrus SASL 认证可用。

代码库创建

SVN软件安装完成后还需要建立SVN库 
[root@localhost modules]# mkdir -p /opt/svn/repositories
[root@localhost modules]# svnadmin create /opt/svn/repositories
执行上面的命令后,自动建立repositories库,查看/opt/svn/repositories 文件夹发现包含了conf, db,format,hooks, locks, README.txt等文件,说明一个SVN库已经建立。

配置代码库

进入上面生成的文件夹conf下,进行配置 
[root@localhost modules]# cd /opt/svn/repositories/conf

用户密码passwd配置

[root@localhost password]# cd /opt/svn/repositories/conf
[root@admin conf]# vi + passwd
修改passwd为以下内容:

[users]
# harry = harryssecret
# sally = sallyssecret
zhoulf=123456

权限控制authz配置

[root@admin conf]# vi + authz
目的是设置哪些用户可以访问哪些目录,向authz文件追加以下内容:

#设置[/]代表根目录下所有的资源 
[repositories:/]
zhoulf=rw

服务svnserve.conf配置

[root@admin conf]# vi + svnserve.conf

追加以下内容:

[general]
#匿名访问的权限,可以是read,write,none,默认为read
anon-access=none
#使授权用户有写权限 
auth-access=write
#密码数据库的路径 
password-db=passwd
#访问控制文件 
authz-db=authz

配置防火墙端口

[root@localhost conf]# vi /etc/sysconfig/iptables
添加以下内容: 
-A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT
保存后重启防火墙 
[root@localhost conf]# service iptables restart

启动SVN

svnserve -d -r /opt/svn

查看SVN进程

[root@localhost conf]# ps -ef|grep svn|grep -v grep
root     12538     1  0 14:40 ?        00:00:00 svnserve -d -r /opt/svn

检测SVN 端口

[root@localhost conf]# netstat -ln |grep 3690
tcp        0      0 0.0.0.0:3690                0.0.0.0:*                   LISTEN

停止重启SVN

[root@localhost password]# killall svnserve    //停止 
[root@localhost password]# svnserve -d -r /opt/svn  // 启动

8,测试服务器【注意:上传完代码,最好也用这个测试下看是否服务器能看到代码
                # svn co svn://192.168.1.5/repositories
                按提示先输入用户密码,再输入svn的用户名、密码,就可以了。

 另外一种:配置SVN服务器的HTTP支持(可以用浏览器看代码) 

       详细配置请参考 http://www.blogjava.net/jasmine214--love/archive/2010/09/26/332989.html
       1,修改httpd.conf,添加关于SVN服务器的内容
                修改/etc/httpd/conf/httpd.conf。
 
        2,重启HTTPD服务器
                # service httpd restart
 
        3,用浏览器访问http://192.168.1.5/test

推荐:http://www.cnblogs.com/zhoulf/archive/2013/02/02/2889949.html
       http://my.oschina.net/junn/blog/164041

svn强制要求提交注释

不少开发员提交修改的时候都不写注释,导致查看历史时很费劲,也不太符合规范。有的公司要求每次提交修改时都写上bug号或者任务描述,那么如何在工具上防止开发员们不写注释呢?

利用svn的pre-commit钩子可简单实现此要求

进入仓库下hooks目录,找到pre-commit.tmpl文件,重命名名pre-commit,并设置为可执行.

  1. # cp pre-commit.tmpl pre-commit   
  2. # chmod +x pre-commit   
  3. # vim pre-commit   

编辑pre-commit文件,将:

  1. $SVNLOOK log -t "$TXN" "$REPOS" | \   
  2.    grep "[a-zA-Z0-9]" > /dev/null || exit 1   
  3. commit-access-control.pl "$REPOS" "$TXN" commit-access-control.cfg || exit 1   
  4.   

这三行注释掉(前面加#符号),在此位置添加如下几行:

  1. LOGMSG=`$SVNLOOK log -t "$TXN" "$REPOS" |grep "[a-zA-Z0-9]" |wc -c`   
  2. if [ "$LOGMSG" -lt 5 ]; then   
  3.         echo -e "日志信息是空的!您必须输入大于5个字符作为注释! " 1>&2   
  4.         exit 1   
  5. fi  

保存,退出

此时效果已经实现,不加注释提交则不成功。




0 0
原创粉丝点击