Linux下SVN部署Web版本同步

我们都知道,SVN服务器端搭建好之后,要先创建版本库。而版本库中的文件都是以加密的方式存在,并不是提交上来的代码直接存放的。

因此,就有这样一个问题,我们希望我们测试好的代码提交到SVN服务器之后,可以不再经过其他的手动操作,而直接看到代码在服务器上的效果,比如web代码可以通过url直接看到。

解决方案的原理是这样,客户端commit到SVN的代码,在服务器端自动update到web服务器的代码目录。而Linux下的SVN服务端是提供这样的机制的,我们每创建一个版本库的时候注意到,在版本库目录下有hook这样一个文件夹,里面默认的都是.tmpl这样的临时文件。我们需要做的就是将post-commit.tmpl重命名为post-commit。这样,在客户端出现commit操作的时候,就会触发这个文件里的操作。接下来,我们只需要在post-commit这个文件中,写入相应的命令,update到web服务器代码目录即可。

这样一来,就实现了,客户端测试好的代码提交到服务器之后,可以直接通过web服务器看到效果。


示例:

1、创建svn服务器版本库

mkdir /usr/local/svn
svnadmin create /usr/local/svn/testsvn

2、配置好conf下的三个文件,这里不做赘述,可以参考我另一篇博客《Linux下svn服务器端安装及配置教程》

3、将版本库下hook目录下的post-commit.tmpl重命名为post-commit,并给post-commit文件可执行权限

chmod a+x post-commit

post-commit文件中写入如下命令:

#!/bin/sh
export LANG=zh_CN.UTF-8
svn update /var/www/html/test

如果没有保存缓存密码,则update的时候需要指定svn用户名及密码,也可以强制不保存密码--no-auth-cache

4、启动该版本库

svnserve -d -r /usr/local/svn/testsvn

5、给web服务器目标代码目录checkout一份代码

svn checkout svn://127.0.0.1/ /var/www/html/test

6、搞定。这个时候客户端svn提交代码的时候,就会自动update到代码目录啦

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值