让虚拟主机也用上SVN:适用于个人的开发部署方式

本文介绍了一种在没有条件安装SVN服务器的情况下,如何利用本地SVN服务器与虚拟主机进行代码自动同步的方法。该方法通过设置post-commit钩子,实现在提交代码后自动将更新同步到远程服务器。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

相 信很多开发人员和我一样,在工作之余还会管理个人网站,和网友们分享自己的经验和代码。应该大部分人都是租用的虚拟主机,这样平时在公司那一套使用SVN 提交代码的方式就不管用了,每次更新程序,都要先整理一份修改记录,然后依次用FTP上传,麻烦耗时不说,还会经常遗漏文件,造成不必要的麻烦。

想 要让线上代码和本地开发环境保持同步,方法也很多,最简单的可以利用CuteFtp,WinScp的文件夹监视功能,当被监视的文件夹内有修改动作,就会 自动触发程序提交代码到服务器。但这样也有个弊端,在本地调试的修改也会带上线,虽然是方便了,但可能造成更大的问题。



如 图所示,当开发人员在本地开发并调试后,提交代码到本机SVN服务器,触发post-commit钩子,调用post-commit.bat,(由于对 bat的语法不熟悉,在这个架构中,我用php代替bat,post-commit.bat仅做了在命令行下调用post-commit.php并传 参),然后然后进行文件的同步处理。

大致流程如下:

  1. 开发人员提交代码到SVN服务器
  2. 提交完成后,自动调用post-commit钩子
  3. 钩子调用php脚本并传递三个参数:代码仓库路径,当前版本号,配置文件名
  4. php脚本通过传递过来的参数取得并分析当前版本的更新日志
  5. 根据不同的情况(新增、修改、删除、重名民)来同步文件

post-commit.bat代码如下:

1
2 set PATH=D:\Program Files\WebServer\PHP5.2.6;%PATH%
php "F:\wwwroot\site\raychou\labs\php-svn-hooks\post-commit.php" "%1" %2 "config/raychou.php" 1>&2

除post-commit默认的%1和%2两个参数外,这里我还传了第三个参数”config/raychou.php”,这个参数是传递给PHP脚本,让其去读取指定的配置文件,这个配置文件是在同步过程中需要用到的一些设置,例如SVN工作目录,FTP帐号等设置。

php在接收到hooks传递过来的参数后,读取配置文件,连接本地SVN版本库,取得并分析本地更新日志,连接FTP服务器,开始同步文件。

关于SVN Hooks以及post-commit的参数传递,请参考这里http://www.subversion.org.cn/svnbook/1.4/svnbook.html#svn.ref.reposhooks

php-svn-hooks php-ftp-client php-svn-client

注:本文仅针对没有条件在主机上安装SVN服务器的情况,例如使用虚拟主机的开发人员。

转载自:http://hi.baidu.com/omyss/item/e524bfd7d5fc98cd1a72b4ee

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值