Linux搭建svn服务器并设置客户端提交自动更新

  1. 下载svn
    yum -y install subversion

  2. 创建版本库目录 //一开始在这里的理解上出了问题,一直以为这个是服务器端的目录,其实不然
    mkdir /var/svn

  3. 启动svn
    svnserve -d -r /var/svn
    如果提示已经启用,先ps -A查看svn的pid,然后
    kill pid的值
    再执行一次启动命令

  4. 创建版本库
    svnadmin create /var/svn/kaoqin

  5. 配置版本库

    • 先配置密码
      cd /var/svn/kaoqin/conf
      `vim passwd
### This file is an example password file for svnserve.  
### Its format is similar to that of svnserve.conf. As shown in the  
### example below it contains one section labelled [users].  
### The name and password for each user follow, one account per line.  
[users]  
# harry = harryssecret  
# sally = sallyssecret  
test = testpasswd 
  • 再配置权限
    vim authz
    在最末尾加上
[/]
* = rw
  • 再配置svn
    vim svnserve.conf
    把以下几个注释打开,注意前面不能留有空格
anon-access = none #没有登录的用户不能访问  
auth-access = write #登录的用户可以写入
password-db = passwd #密码文件为当前目录下的passwd  
authz-db = authz #验证文件为当前目录下的authz
  1. 在Apache目录下checkout这个项目,并设置自动更新
    cd /var/www,之后checkout一下
    ·svn co svn://******/kaoqin 这样就可以checkout下来又不包含原目录名。

  2. 接着可以测试一下是否能正常访问,可以在windows下面checkout 然后commit代码进行测试。这里可能还有一个问题,因为Apache的默认访问地址是/var/www/html,所以要改下配置
    vi /etc/httpd/conf/httpd.conf
    找到 DocumentRoot “/var/www/html”,把这个目录改成”/var/www/”
    之后别忘了把/var/www/这个目录的权限改下
    chmod -R 755 /var/www/
    然后重启下Apache,
    service httpd restart

  3. 做完这些就剩下设置自动更新了。
    cd /var/svn/kaoqin/hooks
    mv post-commit.tmpl post-commit
    然后 vim post-commit

#!/bin/sh 
#
#
#
REPOS="$1"
REV="$2"
export LANG=zh_CN.UTF-8
SVN=/usr/bin/svn           #这里配置的是svn安装bin目录下的svn文件 
WEB=/var/www/html/test     #要更新的目录 
$SVN update $WEB --username xxx --password xxx (此版本是linux下,windows下是.bat,写法少有不同)

然后记得让post-commit有执行的权限 chmod 777 post-commit

之后自行测试下。应该是没问题了的。

你可能感兴趣的:(服务器)