资讯专栏INFORMATION COLUMN

Linux安装SVN实现自动同步到Web目录

RobinTang / 3104人阅读

摘要:个人博客安装实现自动同步到目录一安装检查服务器是否安装已安装未安装未安装使用安装创建仓库目录仓库目录可更改到其他目录看你意愿创建项目版本库为版本库名称创建成功后进入版本库目录查看目录下生成的文件存放版本库所用配置文件的

个人博客:
Linux安装SVN实现自动同步到Web目录

一:安装SVN
1,检查服务器是否安装SVN

svn --version
    已安装:
        svn, version 1.6.11 (r934486)
            compiled Aug 17 2015, 08:37:43
        Copyright (C) 2000-2009 CollabNet.
        Subversion is open source software, see http://subversion.tigris.org/
        This product includes software developed by CollabNet (http://www.Collab.Net/).
        The following repository access (RA) modules are available:
        * ra_neon : Module for accessing a repository via WebDAV protocol using Neon.
          - handles "http" scheme
          - handles "https" scheme
        * ra_svn : Module for accessing a repository using the svn network protocol.
          - with Cyrus SASL authentication
          - handles "svn" scheme
        * ra_local : Module for accessing a repository on local disk.
          - handles "file" scheme
    未安装:
        -bash: svn: command not found

2,未安装使用yum安装

yum install subversion

3,创建仓库目录(仓库目录可更改到其他目录,看你意愿)

mkdir –p /svn

4,创建项目版本库

svnadmin create /svn/davesvn  --davesvn为版本库名称

5,创建成功后进入版本库目录

cd /svn/davesvn
ls 查看目录下生成的文件
conf    存放版本库所用配置文件的目录
db      版本数据存储目录
format  存储一个整数的文件,此整数代表库层次结构版本
hooks   存放版本库勾子目录
locks   存储库锁目录,用来跟踪库的访问者
README.txt

6,接下来开始配置SVN

cd conf
ls 
authz           |  权限配置文件
passwd          |  用户名口令文件
svnserve.conf   |  svn服务配置文件
//配置密码 XXX=XXX
vim password
[users]  
zhan = 123456
//配置权限 XXX=XXX
vim authz
[/]
zhan = rw
//配置svnserve.conf  取消以下注释 注意不要有空格
vim svnserve.conf
anon-access = read      #匿名用户可读  
auth-access = write     #授权用户可写  
password-db = passwd    #使用哪个文件作为账号文件  
authz-db = authz        #使用哪个文件作为权限文件  
realm = /svn/davesvn    #认证空间名,版本库所在目录

7,启动SVN服务

svnserve -d -r /svn/davesvn
-d 表示后台运行
-r 指定目录是 /svn/davesvn
若提示:svnserve: Can"t bind server socket: Address already in use
表示服务已经启动,先停止服务
ps -ef | grep svn
kill -9 [进程号] 杀掉进程

二,实现自动部署项目
1,使用post-commit实现自动部署

在/svn/davesvn/hooks下创建post-commit文件,文件设置可执行权限
cp post-commit.tmpl post-commit
chmod 755 post-commit

2,打开post-commit文件,清空post-commit内容,加入以下内容

!/bin/sh
export LANG=zh_CN.UTF-8
svn co svn://[你的ip地址]/davesvn [WEB实际目录]
LOG_PATH=/tmp/svn_test.log
WEB=[WEB实际目录]
REPOS="$1"
REV="$2"
svn update --username [刚设置的SVN用户名] --password [刚设置的SVN密码] $WEB --no-auth-cache >> $LOG_PATH

3,最后回到shell

svn co svn://你的ip/davesvn [WEB目录]
按照提示输入账号密码实现自动同步

三,使用

SVN检出:查看是否可以正常检出
svn://服务器IP:3690/davesvn
正常检出后提交查看WEB目录是否实现同步内容

排坑:

svn错误:post-commit hook failed (exit code 1) with output.
1,检查post-commit里面设置的字符编码是否正确
    原来是#export LANG=zh_CN.GBK
    修改为export LANG=en_US.UTF-8即可(svn服务器默认是utf8)
2,检查post-commit里面设置的账号密码和SVN配置里面的账号密码是否正确
3,255错误:post-commit有没有给执行权限
4,查看服务器3690端口是否开启
4,最后无论在做什么,最主要的还是细致,看报错信息,不要慌张

文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。

转载请注明本文地址:https://www.ucloud.cn/yun/30886.html

相关文章

  • CentOS 搭建SVN并用钩子自动实现同步web目录教程

    摘要:后自动同步到网站根目录的方法为什么需要同步呢原因是我们的文件其实是提交到了的仓库中,仓库不是一个实际的网站根目录。进入到项目下的文件夹把的扩展名去掉,并赋予权限。你的至此已经配置完毕,并且可以实现本地一执行上传,自动同步到网站跟目录。 前言 笔者服务器环境、目录情况: 系统:CentOS 6.5 网站根目录:/home/wwwroot/test/web 为什么要用svn? a.方便多人...

    zxhaaa 评论0 收藏0

发表评论

0条评论

最新活动
阅读需要支付1元查看
<