linux系统下SVN同步文件到WEB目录

SVN在团队开发中使用非常普遍,是一个很方便的版本控制系统。 
如果要是能将SVN服务器上的数据自动发布到Web服务器,那将是整个项目开发、测试更加便捷。利用SVN的hook功能就能实现将SVN服务器上的数据同步到Web服务器。

思路: 
找到SVN Server中的仓库(Repositories)文件夹的位置,在相应的项目文件夹中找到hooks文件夹。在该文件夹中添加一个post-commit文件;当有commit动作发生时(提交到SVN Server时)就会执行这个post-commit文件,在该文件实现数据的复制。


1.创建web目录(已有目录则略过)

   cd /var

   mkdir www

   chmod 777 www

 

2.检出副本到/var/www

   svn co file:///var/svn/foo

   此时web目录是SVN版本库的一个工作副本


3.增加hooks(钩子)文件

   在/var/svn/foo/hooks/目录中

# start-commit 提交前触发事务

# pre-commit 提交完成前触发事务

# post-commit 提交完成时触发事务

# pre-revprop-change 版本属性修改前触发事务

# post-revprop-change 版本属性修改后触发事务

我们这里只需要修改post-commit文件:

cp post-commit.tmpl post-commit


编辑该文件

#!/bin/sh

# 配置库地址

   REPOS="$1"

   REV="$2"

# WEB目录

   BASEPATH=/var/www

   WEBPATH="$BASEPATH/"

# 避免中文信息乱码

   export LANG=zh_CN.UTF-8

# 可以配合svnlook命令更新指定目录

   svn update $WEBPATH --username user1 --password password1 --no-auth-cache



保存后需要修改post-commit文件权限为755,否则SVN无法调用执行

chmod 755 post-commit

里面原有的代码全部注释掉.这里可以执行shell命令,每次commit完成后都会调用此文件。


说明:
1、#!/bin/sh 说明是执行shell命令
2、export LANG=zh_CN.UTF-8 是为了解决svn post commit 中文乱码。
    如果你是GBK编码可能会提示:Error output could not be translated from the native locale to UTF-8
    这是客户端和服务器编码的问题,默认是utf-8,可尝试设置export LANG=zh_CN.GBK或者export LANG=en_US.UTF-8
3、svn update –username 你版本库的用户名 –password 用户名的密码

      svn://你的IP地址:端口/repos/project /web/project

    

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值