BBo*_*eld
        
         23
        
        php
        
        svn
        
        workflow
        
      
      我已经阅读了有关此问题的SO中的许多问题,但我无法找到适合我们情况的任何好建议.我继承了这个工作流程,我正努力让它变得更好.
我们的设置
- PHP代码库(特别是Kohana)
- 代码库支持~60个站点,每个站点都有独特的模板(即60个QA [质量保证]域)
- 每个站点都有不同资产和资源的A记录(即每个域的8个A记录)
- 3位开发人员
- 3位设计师
- 开发人员拥有用于本地开发的VMware生产服务器映像
- 设计师没有
- 用于QA的共享物理开发服务器,提交后更新始终将此服务器保持在主干的当前HEAD
- 生产服务器,根据实时功能更新为不同版本的混合和匹配
我们的工作流程
- 开发人员在本地工作,直到完成给定功能,然后将整个功能提交到主干以进行内部QA.
- 设计师只对CSS /图像/模板进行小的更改.他们直接提交trunk,QA自己的更改,并在他们的QA之后立即更新生产服务器上的相应文件.
- 当功能准备就绪后,生产服务器将手动更新为与该功能相关的每个文件的正确版本号.有时这很简单,有时它非常毛茸茸(很多svn log调用寻找上游依赖).
我们的问题
- 由于三个不同的开发人员正在处理需要不同QA数量的不同功能,我们发现自己会定期遇到上游依赖问题.
- 在任何给定时间,我们都无法以编程方式确定生产服务器上的哪些功能以及哪些功能不是.  svn status -u将告诉我们哪些文件不是最新的,但通常不是一个清晰的功能图片.
我知道的
- 有一个生产部门可以减轻我们的一些问题.我们至少可以监控哪些功能被添加到生产中以及何时添加,尽管这不会解决上游依赖性问题.
- 功能分支是一个选项,我们在过去尝试过.由于我们的软件每个分支需要60个QA域,因此我们遇到了流程管理问题.例如,为每个功能分支创建480个(每个域60个域x 8个记录)A记录.
- 开发人员分支也是一种选择,但我们的功能QA时间有所不同.我不能肯定地说,在我需要提交其他内容之前,之前的功能将不在QA中.
上游依赖示例
- 开发人员A在管理员和前端都添加了新的幻灯片功能.
- 开发人员B在管理员和前端都添加了新的反馈功能.
- 这两个功能都与位置模型/控制器逻辑交织在一起,因此对这些相关文件进行了更改以考虑这两个新功能.
- 幻灯片放映功能进入QA,但受到某些发展监督或范围蔓延的影响.
- 反馈功能进入QA并且没有问题.
- 我们希望遵循时间表并将反馈功能推送到生产中,但我们无法直接执行,因为这两个功能都需要更改位置模型/控制器.也就是说,我们不能只做一个svn update file1 file2 file3.
- 注意: 这是一个简单的例子,它可以通过进行一些反向合并来解决.我们的问题经常比这复杂.
多站点结构信息
- 我们有许多预定义的结构主题,包括视图,图像,CSS文件,JS文件等.
- 每个站点都分配了一个主题.
- 出于品牌和可扩展性的原因,每个站点都可以使用自定义视图覆盖主题视图,或者包含其他特定于站点的CSS/JS文件.
我确信还有其他一些人在努力解决类似的问题,我希望能从互联网上的聪明人那里获得一些见解.如果我说的话似乎很清楚,请随时提问!