git flow使用经验小记
我在半年前开始在公司内推广使用git flow,控制版本发布流程,到目前为止效果令人满意。
但是实际使用过程中有一些小小的意外流程,完全照搬git flow的模型不太容易处理好。好在git本身就很灵活,碰到问题基本上都有办法绕过去。下面是我总结的一些特例情况下的处理办法。
测试/共享单独一个feature
我在半年前开始在公司内推广使用git flow,控制版本发布流程,到目前为止效果令人满意。
但是实际使用过程中有一些小小的意外流程,完全照搬git flow的模型不太容易处理好。好在git本身就很灵活,碰到问题基本上都有办法绕过去。下面是我总结的一些特例情况下的处理办法。
测试/共享单独一个feature
在小站点上,直接用git来部署php代码相当方便,你的远程站点以及本地版本库都有一个版本控制,追踪问题或者回滚是很轻松的事情。下面介绍用git部署时的设置步骤
在远程服务器的设置
假定你需要部署的代码在/var/www/yoursite
cd /var/www/yoursite
我之前写了几个wordpress插件,比如inline-javascript, code-prettify。这些插件都托管在wordpress.org提供的svn服务器上,但是我实在太喜欢在git下活动了,因此动了点心思,想把插件代码传到github上,开发完之后利用git-svn传到wordpress的svn服务上。
照着这个思路,捋起袖子就开干了。
用git-svn抓取插件代码
wordpress的插件svn库大且缓慢,如果直接用git-svn去clone代码,一定会慢死,所以我按照以前的笔记,用git从大型svn快速clone代码。
所谓LiteCloud,无非就是前些天提到的LightCloud的php版本实现。这个和原来的python版本有一些区别,会造成不兼容,如下:
把Consistent Hashing算法换成了ketama,在pecl的memcached扩展里有简单方法可以实现,效率比单纯的php好很多,能快个10倍吧。没有重复造轮子,因此我很是得意。
facebook在GitHub上托管了大量的开源项目,足足有26个。其中hiphop-php以及xhp在这阵子炒的比较热,的确是让人印象深刻的东西。顺手把别的项目翻出来看,也有很实用的工具,比如git-review。
git-review为git新增了一个很方便的代码review途径,利用这个命令,可以调用别的工具比如vimdiff来review代码的改动。下面简单记录一下使用的过程:
下载并安装
首先确认已经装好了git,剩下的事情比较简单。
一般情况下git svn clone这个操作会从第一个版本开始同步,如果版本号已经到了好几万(或更高?),这个操作会相当的费时。
当时还想着能不能hack一下git-svn脚本,其实后来看看文档,clone操作可以使用参数-r$REVNUMBER:HEAD检出指定版本后的代码,因此,更好的步骤应该是这样:
开始试用最近比较红的git,我看中的是它的本地版本库功能,即便网络比较烂的时候,也可以在本地提交,等到了合适的时候一并传上去。由于以前的代码版本控制使用的是svn,所以我用git-svn过渡一下。
目前在windows下,最好的git客户端恐怕就是装一个cygwin。鼓捣了一个时辰,整理好一些可用的配置文件,陈列一下以备下次使用:
~/.bash_profile
偶尔还会使用svn验证一下check in的情况,刚转过来不放心啊,下面的配置是为了防止svn命令行乱码。命令行git-svn在/usr/sbin/git-core/路径下,是一个perl脚本,为了方便,我把这个路径加入了PATH环境变量。