Category Archives: 版本控制
让服务器自动从Hg版本库中下载代码
每次写完代码,提交到版本库,测试可以执行不会冲突,推到远端代码仓库。之后要发布的话,还要通过FTP上传到服务器上,FTP速度又不很理想,严重影响工作效率。 有没有解决之道?有! 直接让服务器从代码仓库中下载代码不就行了么?代码仓库中已经包含最新代码了,让服务器从代码仓库的服务器远程下载代码,方便快捷全自动! 而且,现在用的是hg,而不是svn。svn有个问题,提交的代码可能是未完成的半成品导致程序无法执行。而hg的好处是半成品可以提交在本地,阶段性成果完成后再往远端代码仓库中提交。 下面就以使用BitBucket为例,其他服务大同小异。 编译 hg 首先需要在服务器端编译一份 hg ,编译起来还是很方便的,直接从官网下载一份源码,解压缩后make && make install 一下就行了。他源码包里的README里就这么写的。 Mercurial/Hg 下载地址 第一次clone 第一次使用需要先clone一份代码仓库到本地,以后就可以简单的使用pull命令获取更新了。 所以第一次使用需要 hg clone <你的仓库地址> 仓库地址可以在 BitBucket里的项目里找到。 编写 PHP 然后在服务器端写一个文件up.php,放在需要更新的目录下面, 如下代码: passthru("/< hg命令行工具的绝对地址>/hg pull -u https://<你的用户名>:<你的密码>@<你的代码仓库地址>"); 以我的空间为例,就是: passthru("/home/shawphy/bin/hg pull -u https://shawphy:******@bitbucket.org/shawphy/test/"); 其中最关键的一步是要把密码也写在URL里,否则的话就得用popen()函数来处理密码交互了,比较麻烦。 这样,只要访问这个php文件,就能更新这个网站了。 … Continue reading

