并行任务开发的分支策略

时间:2011-10-19 20:34:16

标签: svn version-control continuous-integration branch branching-strategy

我们有三个环境或网站(开发,登台和制作),它们运行我们的ASP.NET应用程序的一个版本。 我们使用SVN和持续集成(Teamcity)来帮助自动将应用程序部署到每个Web服务器。

我们当前的开发工作流程基于任务(或工作单)系统。 开发人员需要完成一项任务。 许多开发人员可以同时处理项目,但是在应用程序的不同部分。

我当前的解决方案使开发人员为每项任务创建单独的分支。 当用户提交主干源代码时,代码将被编译并部署到我们的开发Web服务器。

开发人员1启动一项新任务,并从主干源代码创建一个新分支,即“任务1”。

他将代码提交给他的分支,然后将分支与主干合并。

他的更改是使用其余代码编译的,并部署到开发Web服务器。

开发人员2启动一项新任务并从主干创建一个分支(使用Dev 1的更改)。

然后他进行了更改,将代码提交到“任务2”并将分支与主干合并。

再次编译代码并将其部署到开发Web服务器。

开发人员1尚未完成,但开发人员2所做的更改已准备好部署到生产中。

Dev 2然后将“任务2”与“生产”分支合并。

这就是问题所在。 Dev 1所做的部分修改正在制作中,这是一件坏事。

我需要找到一种分支策略,让我们可以继续开发并逐一实现每项任务。

你有什么建议吗? SVN是否适合这项工作?

更新

我现在正考虑将“Dev”分支部署到我们的开发服务器,并保持主干干净并与我们的“生产”分支同步。这个特殊问题似乎以这种方式消失了,因为每个开发人员都会从一个干净的主干创建他的分支,而不是一个开发人员的修改。

1 个答案:

答案 0 :(得分:1)

我读完你​​的问题后,我有点困惑。如果开发人员1尚未完成且尚未准备好将其前期修改编译并部署到生产中,则将任务1合并到主干不是一个好主意。

这个怎么样:每个开发者都创建他/她自己的分支“Task i”。然后,他们可以同时在分支机构上工作。办理登机手续,退房等。完成任务后,他们可以将他们的分支合并回主干。这样,您可以确保生产服务器上的项目完整,而不是一个人的工作。