SVN使用钩子实现代码同步

目标:将SubVersion服务器代码仓库中的shop项目(/home/svn/shop)实时同步到自己服务器程序目录(/home/wwwroot/shopproj/)中,便于每次提交之后调试。

前期必要条件:SubVersion服务器中一定要有代码仓库中的项目代码,可以有两种方法实现:
1.用TortoiseSVN checkout出shop的代码
在SVN客户端TortoiseSVN创建好自己的项目,然后commit到SubVersion服务器,然后从SubVersion服务器checkout出shop的代码到/home/wwwroot/shopproj/中,执行命令:
svn co svn://127.0.0.1/shop /home/wwwroot/shopproj/

执行完毕,/shopproj/目录下就有自己的项目了。


2.用TortoiseSVN commit代码到代码仓库shop

创建好代码仓库shop后,先把项目代码上传到/home/wwwroot/shopproj/目录下,然后依次执行命令:

svn co svn://127.0.0.1/shop /home/wwwroot/shopproj/

svn add /home/wwwroot/shopproj/*
svn commit -m=shop

执行完毕,代码仓库shop中就有自己的项目代码了。( *执行后两句addcommit命令的时候,要进入到shopproj/目录下执行)

一.windows操作系统下代码同步
在代码库的hooks(钩子)目录下,新建一个.bat后缀(windows批处理文件名)的文件post-commit.bat,然后编辑文件,在文件中加入如下代码:
SET SVN="E:\Subversion1.8.17\bin\svn.exe"
SET DIR="E:\wamp\www\SVN\shopproj"
SVN update %DIR% --username harry --password harry

当使用TortoiseSVN客户端commit文件时,就会自动执行批处理文件post-commit.bat,将提交上去的代码自动同步到目标目录中。

二.linux操作系统下代码同步

同样的,通过钩子文件来处理和执行:

(1)复制/home/svn/shop/hooks/post-commit.tmpl文件为post-commit;

执行命令:cp post-commit.tmpl post-commit

(2)执行命令行修改文件的权限:# chmod 755 post-commit
(3)编辑post-commit,把以下代码写入:
#!/bin/sh
export LANG=en_US.UTF-8
DIR=/home/wwwroot/eduproj
svn update $DIR --username 'harry' --password 'harry' --no-auth-cache

当使用TortoiseSVN客户端commit文件时,就会自动执行批处理文件post-commit,将提交上去的代码自动同步到目标目录DIR中。( commit文件中的其他无关代码注释掉或者删除掉)
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值