1

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

我们当前的开发工作流程基于任务(或工作订单)系统。给开发人员一个他必须完成的任务。许多开发人员可以同时在项目上工作,但在应用程序的不同部分。

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

开发人员 1 开始一个新任务并从主干源代码创建一个新分支,比如说“任务 1”。

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

他的更改与其余代码一起编译并部署到开发 Web 服务器。

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

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

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

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

Dev 2 然后将“Task 2”与“Production”分支合并。

这就是问题所在。Dev 1 所做的部分更改正在生产中,这是一件坏事。

我需要找到一个分支策略,使我们能够继续开发并逐个执行每个任务。

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

更新

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

4

1 回答 1

1

读完你的问题后,我有点困惑。如果 Developer 1 还没有完成并且还没有准备好将他之前的修改编译并部署到生产中,那么将 Task 1 合并到主干不是一个好主意。

怎么样:每个开发人员创建他/她自己的分支“任务 i”。然后,他们可以同时在分支上工作。进行签入、签出等。完成任务后,他们可以将分支合并回主干。这样,您可以确保生产服务器上的项目是完整的,而不是工作的一部分。

于 2011-10-19T21:16:30.340 回答