我们有三个环境或网站(开发,登台和制作),它们运行我们的ASP.NET应用程序的一个版本。 我们使用SVN和持续集成(Teamcity)来帮助自动将应用程序部署到每个Web服务器。
我们当前的开发工作流程基于任务(或工作单)系统。 开发人员需要完成一项任务。 许多开发人员可以同时处理项目,但是在应用程序的不同部分。
我当前的解决方案使开发人员为每项任务创建单独的分支。 当用户提交主干源代码时,代码将被编译并部署到我们的开发Web服务器。
开发人员1启动一项新任务,并从主干源代码创建一个新分支,即“任务1”。
他将代码提交给他的分支,然后将分支与主干合并。
他的更改是使用其余代码编译的,并部署到开发Web服务器。
开发人员2启动一项新任务并从主干创建一个分支(使用Dev 1的更改)。
然后他进行了更改,将代码提交到“任务2”并将分支与主干合并。再次编译代码并将其部署到开发Web服务器。
开发人员1尚未完成,但开发人员2所做的更改已准备好部署到生产中。
Dev 2然后将“任务2”与“生产”分支合并。
这就是问题所在。 Dev 1所做的部分修改正在制作中,这是一件坏事。
我需要找到一种分支策略,让我们可以继续开发并逐一实现每项任务。
你有什么建议吗? SVN是否适合这项工作?
更新
我现在正考虑将“Dev”分支部署到我们的开发服务器,并保持主干干净并与我们的“生产”分支同步。这个特殊问题似乎以这种方式消失了,因为每个开发人员都会从一个干净的主干创建他的分支,而不是一个开发人员的修改。
答案 0 :(得分:1)
这个怎么样:每个开发者都创建他/她自己的分支“Task i”。然后,他们可以同时在分支机构上工作。办理登机手续,退房等。完成任务后,他们可以将他们的分支合并回主干。这样,您可以确保生产服务器上的项目完整,而不是一个人的工作。