branch是功能分支,用来使代码应对不同的需求。
tag是里程碑分支,用来稳定一个相对完整和稳定的版本。
如果要开发一个面向东南亚的产品。典型的做法是从一个功能和特性合适的tag 创建一个branch,东南亚组的开发同学在这个branch上开发。新的功能和特性一般不合并。
如果产品刚刚发布,马上又进入了新的开发周期。应该从主干上创建一个分支用作新的功能和特性开发,在新的分支功能特性通过测试之前,主干不接受普通提交,只接受bugfix。最后开发结束,这个分支要和合并到主干上,主干进入新版本发布的环节。
在实践中,程序员的不耐麻烦执行力不强会成为瓶颈,如果数据库里的配置数据在主干修复和分支开发共享,也会造成实践的障碍,大量的时间被耗费在新旧数据的甄别上。一个建议是把数据文本化,svn管理每一次的内容变化,同时数据库分做主干和分支两套,像管理代码一样管理数据。
go to bed!!!