在Centos下安装部署SVN的步骤和遇到的问题

在Centos下安装SVN很简单,使用yum很快就搞定。

    yum install mod_dav_svn subversion  

下面主要探讨下svn的配置。
1、建立 SVN 的根目录:

    [root@vm-moodle ~]# mkdir -p /opt/svn/   

2、建立一个数据仓库:

    [root@vm-moodle ~]# mkdir -p /opt/svn/edu/  
    [root@vm-moodle ~]# svnadmin create opt/svn/edu/  

3、修改配置文件:

    [root@vm-moodle ~]# cd /opt/svn/edu/conf/  
    [root@vm-moodle conf]# ll  
    总计 24  
    -rw-r--r-- 1 root root 710 10-25 09:40 authz  
    -rw-r--r-- 1 root root 325 10-25 09:38 passwd  
    -rw-r--r-- 1 root root 1449 10-25 09:36 svnserve.conf  

    ##****************************************************************  
    #  注意,下面的配置文件中的参数前面一定不能留空格,否则后果自负!  
    ##****************************************************************  
    [root@vm-moodle conf]# vi svnserve.conf  
    [general]  
    anon-access = none    #不允许匿名访问  
    auth-access = write   #认证用户可写  
    password-db = passwd  #密码文件  
    authz-db = authz      #用户验证文件  

    [root@vm-moodle conf]# vi authz  
    [edu:/]  
    hansy = rw  
    # 给edu仓库添加一个名称为的用户,权限为可写。   

    [root@vm-moodle conf]# vi passwd  
    hansy = 87827192  
    # 密码可以是加密密码,也可以是明文,根据前面的配置来决定  

4、启动服务:

    #启动SVN 服务,并指定 SVN 的根目录:  
    [root@vm-moodle ~]# svnserve -d -r /opt/svn/   

    #查看服务是否正常起来:  
    [root@vm-moodle ~]# netstat -tunlp | grep svn  
    tcp 0 0 0.0.0.0:3690 0.0.0.0:*   
    EN 3970/svnserve  
    #LISTEN 监听端口3690  

5、在Win上安装TortoiseSVN客户端
下载需要的Tortoise版本进行安装。因为这里的安装没有和WEB服务如Apache连接,所以在客户端访问时使用SVN协议进行。
一般如:svn://192.168.1.10/edu
输入用户名、密码即可正常访问。

一问一答:
问:安装好svn服务后在windows下用svn客户端连接不上svn服务器?
答:一般是centos中SVN的3690端口没有打开,使用下面方法

    [root@vm-moodle ~]#iptables -I INPUT -p tcp --dport 3690 -j ACCEPT  #开放3690端口  
    [root@vm-moodle ~]#/etc/rc.d/init.d/iptables save                  #保存配置,非常重要   
    [root@vm-moodle ~]#/etc/init.d/iptables status   # 查看是否已经成功:  

问:配置基于svnserve的subversion服务器后,在客户端访问subversion版本库时出现这个错误:svnserve.conf:12: Option expected;为什么会出现这个错误呢?
答:因为subversion读取配置文件svnserve.conf时,无法识别有前置空格的配置文件。看下面的配置文件。

    [general]  
    ### These options control access to the repository for unauthenticated  
    ### and authenticated users. Valid values are "write", "read",  
    ### and "none". The sample settings below are the defaults.  
    anon-access = read  
      auth-access = write  

在上面的配置文件中,anon-access是顶行的,没问题,而auth-access就存在前置空格,会导致这个错误。
要避免出现这个错误,应该在去掉这些行前的#时,也要顺手去掉前面的空格.

问:如何输入TortoiseSVN的用户名、密码?
答:很多时候,为了方便,我们在使用Tortoise时,会勾选密码输入框那里的保存验证信息。但是当我们想换一个用户登录时,却可能发现不知道怎么换用户进行登录。Tortoise的用户名密码等认证信息都是缓存在客户端文件系统的这个目录:
C:/Documents and Settings/Administrator/Application Data/Subversion/auth
删除auth下面的所有文件夹,重新连接远程服务器进行检出,对话框就会出现!

问:svn: Can’t convert string from ‘UTF-8’ to native encoding 解决办法

 解决办法很简单,正确设置当前系统的 locale:

export LC_CTYPE=zh_CN.UTF-8 

或者

export  LC_CTYPE=en_US.UTF-8 
(我设的是en_US.UTF-8)

然后重新 checkout 即可。

如果   export  LC_CTYPE=zh_CN.UTF-8  提示

warning:> locale

locale: Cannot set LC_CTYPE to default locale: No such file ordirectory

locale: Cannot set LC_MESSAGES to default locale: No such file ordirectory

locale: Cannot set LC_ALL to default locale: No such file ordirectory  等信息

可以尝试

locale-gen en_US.UTF-8 

问: SVN:show log with no date的解决方法
你想将你的代码库开放给所有人访问,于是你就开放了匿名访问权限,在 svnserve.conf 文件中添加一行: anon-access=read 。可是对于部分目录,你又不希望别人看到,于是针对那些特别目录,你在 authz.conf 里面进行配置,添加了授权访问的人,并添加了 * = 标记。你认为一切OK了,可是你缺发现,那个特别目录却无法访问了,总是提示 Not authorized to open root of edit operation 或者 未授权打开根进行编辑操作 。你再三检查你配置的用户名与密码,确认一切正确,还是无法解决问题。

原来,Subversion 有个小 bug ,当 ``anon-access=read`` 并且某个目录有被设置上 ``* =`` 标记,则会出现上述问题。这个 bug 在当前最新版本上(v1.4)还存在,也许在下一版本内可以被改正吧。

解决的办法:在 svnserve.conf 中,将 anon-access 设置成 none 。
解决办法2
这里写图片描述

问:svn部署web版本同步  

#!/bin/sh #一定要在第一行,否则会出现exit 255错误!!!!

  export LANG=zh_CN.UTF-8

  SVN=/usr/local/svn/bin/svn

  WEB=/usr/local/apache2/htdocs/

  #默认无需输入账号密码

  #USERNAME=user01

  #PASSWORD=123456

  # SVN update $WEB --username $USERNAME --password $PASSWORD --no-auth-cache

  $SVN update $WEB

  ————————

  注:该脚本会在客户端执行svn commit同时被触发,从而将版本库的数据同步到apache虚拟目录

  设置脚本可执行权限

  # chmod a+x post-commit
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值