我们有三个运行我们的 ASP.NET 应用程序版本的环境或网站(开发、登台和生产)。我们使用 SVN 和持续集成 (Teamcity) 来帮助将应用程序自动部署到每个 Web 服务器。
我们当前的开发工作流程基于任务(或工作订单)系统。给开发人员一个他必须完成的任务。许多开发人员可以同时在项目上工作,但在应用程序的不同部分。
我当前的解决方案使开发人员为每个任务创建单独的分支。当用户提交时,主干源代码被编译并部署到我们的开发 Web 服务器。
开发人员 1 开始一个新任务并从主干源代码创建一个新分支,比如说“任务 1”。
他将代码提交到他的分支,然后将分支与主干合并。
他的更改与其余代码一起编译并部署到开发 Web 服务器。
开发人员 2 开始一个新任务并从主干创建一个分支(使用开发人员 1 的更改)。
然后他进行更改,将他的代码提交给“任务 2”并将分支与主干合并。
代码再次编译并部署到开发 Web 服务器。
开发人员 1 尚未完成,但开发人员 2 所做的更改已准备好部署到生产环境。
Dev 2 然后将“Task 2”与“Production”分支合并。
这就是问题所在。Dev 1 所做的部分更改正在生产中,这是一件坏事。
我需要找到一个分支策略,使我们能够继续开发并逐个执行每个任务。
你有什么建议吗?SVN 是适合这项工作的工具吗?
更新
我现在正在考虑创建一个“开发”分支来部署到我们的开发服务器并保持主干清洁并与我们的“生产”分支同步。这个特殊问题似乎以这种方式消失了,因为每个开发人员都会从一个干净的主干创建他的分支,而不是一个经过一些开发人员修改的分支。