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

检查已安装版本

#检查是否安装了低版本的SVN [root@zck /]# rpm -qa subversion #卸载旧版本SVN [root@zck modules]# yum remove subversion 安装SVN [root@zck modules]# yum install httpd httpd-devel subversion mod_dav_svn mod_auth_mysql 确认已安装了svn模块 [root@zck /]# cd /etc/httpd/modules [root@zck modules]# ls | grep svn mod_authz_svn.so mod_dav_svn.so

验证安装

检验已经安装的SVN版本信息 [root@zck 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@zck modules]# mkdir -p /opt/svn/repos [root@zck modules]# svnadmin create /opt/svn/repos 执行上面的命令后,自动建立repos库,查看/opt/svn/repos 文件夹发现包含了conf, db,format,hooks, locks, README.txt等文件,说明一个SVN库已经建立。 配置代码库 进入上面生成的文件夹conf下,进行配置 [root@zck modules]# cd /opt/svn/repos/conf 用户密码passwd配置 [root@zck password]# cd /opt/svn/repos/conf [root@admin conf]# vim passwd 修改passwd为以下内容: [users]

harry = harryssecret

sally = sallyssecret

hanye=hanye

权限控制authz配置 [root @admin conf]# vim authz 目的是设置哪些用户可以访问哪些目录,向authz文件追加以下内容: #设置[/]代表根目录下所有的资源 [/] hanye=rw 服务svnserve.conf配置 [root @admin conf]# vimm svnserve.conf 追加以下内容:

[general] #匿名访问的权限,可以是read,write,none,默认为read anon-access=none #使授权用户有写权限 auth-access=write #密码数据库的路径 password-db=passwd #访问控制文件 authz-db=authz #认证命名空间,subversion会在认证提示里显示,并且作为凭证缓存的关键字 realm=/opt/svn/repos 配置防火墙端口

[root@zck conf]# vim /etc/sysconfig/iptables 添加以下内容: -A INPUT -m state --state NEW -m tcp -p tcp --dport 3690 -j ACCEPT 保存后重启防火墙 [root@zck conf]# servimce iptables restart 启动SVN ? 1 svnserve -d -r /opt/svn/repos 查看SVN进程

[root@zck conf]# ps -ef|grep svn|grep -v grep root 12538 1 0 14:40 ? 00:00:00 svnserve -d -r /opt/svn/repos 检测SVN 端口

[root@zck conf]# netstat -ln |grep 3690 tcp 0 0 0.0.0.0:3690 0.0.0.0:* LISTEN 停止重启SVN [root@zck password]# killall svnserve //停止 [root@zck password]# svnserve -d -r /opt/svn/repos // 启动 测试 SVN服务已经启动,使用客户端测试连接。 客户端连接地址:svn://192.168.0.168 用户名/密码: hanye/hanye 测试创建文件夹等操作。

另附: CentOS下svn的安装配置和使用

一,安装必须的软件包

    $ yum install subversion 
    $ yum install mod_dav_svn 

二,基本的SVN服务器配置 1,新建一个目录用于存储SVN所有文件 # mkdir /home/svn

    2,新建一个版本仓库
            # svnadmin create /home/svn/test

    3,初始化版本仓库中的目录,导入原始代码
            如果原代码已经有svn的相关文件,则切换到原代码目录,先删除这些svn相关的文件和文件夹。假定/home/user/code/src存放源代码
            # cd /home/user/code/src
            # find ./ -name "*.svn" | xargs rm -rf
            # svn import /home/user/code/src file:///home/svn/test/ -m "init test code"

    4,添加用户
            在/home/svn/test/conf/passwd文件添加形如“username=password"的条目。
            [users]
            admin = adminpass
            user1 = hanye


     5,修改用户访问策略
            /home/svn/test/conf/authz记录用户的访问策略:
                    [groups]
                    
                    [test:/]
                    admin = rw
                    user1 = r
                    * =
                    
                    [test:/modue]
                    admin = rw
                    user1 = rw
                    * =
            以上表示admin具有所有的读写权限,user1在modue文件夹下可读可写,根目录下只读。也可以配置组的权限。

    6,修改/home/svn/test/conf/svnserve.conf文件,让用户和策略配置生效.
            svnserve.conf内容如下:
                    [general]
                    anon-access = none
                    auth-access = write
                    password-db = passwd
                    authz-db = authz

    7,启动服务器
            # svnserve -d -r /home/svn

    8,测试服务器
            # svn co svn://192.168.0.168/test
            按提示先输入用户密码,再输入svn的用户名、密码,就可以了。
            # cd test
            # vimm main.c
            # svn add main.c 
            # svn commit main.c -m "comment"
            Adding         main.c
            Transmitting file data .
            Committed revimsion 2.  ( 测试提交成功 )

三,配置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服务器
            # servimce httpd restart

    3,用浏览器访问http://192.168.0.168/test

四,可能出现的问题

  1. 如果外网不能正常访问,可能还需要作端口映射,对外网开放3690端口。 检查端口是否打开,可以用命令: telnet xxx.xxx.xxx.xxx 3690

  2. 在windows下checkout的时候,如果出现类似以下的错误:

原因是linux下有同名但大小写不同的文件。一种解决办法是尽量避免这种情况,改成不同的名称。