我们有三个环境或网站(开发、暂存和生产)在其上运行ASP.NET应用程序的版本。我们使用SVN和持续集成(Teamcity)帮助将应用程序自动部署到每个web服务器。
我们当前的开发工作流程是基于任务(或工作订单)系统。开发人员被赋予一项必须完成的任务。许多开发人员可以同时在项目上工作,但可以处理应用程序的不同部分。
我的当前解决方案使开发人员为每个任务创建单独的分支。当用户提交时,将编译主干源代码并将其部署到我们的dev web服务器上。
Developer 1从主干源代码开始一个新任务并创建一个新分支,比如"Task 1“。
他将代码提交到分支,然后将分支与主干合并。
他的更改与其余代码一起编译,并部署到dev web服务器上。
Developer 2启动一个新任务并从主干创建一个分支(使用Dev 1的更改)。
然后进行更改,将代码提交到"Task 2“,并将分支与主干合并。
代码再次被编译并部署到dev web服务器上。
Developer 1尚未完成,但是Developer 2所做的更改已经准备好部署到生产中。
Dev 2然后将"Task 2“与"Production”分支合并。
和这里是问题所在。-- Dev 1所做的部分更改正在生产中,这是一件坏事。
我需要找到一个分支战略,使我们能够继续发展和执行每一项任务一个接一个。
你有什么意见建议?SVN是适合这项工作的工具吗?
更新
我现在正在考虑创建一个" dev“分支,将其部署到我们的dev服务器上,并保持主干干净,并与我们的”生产“分支保持同步。这个特殊的问题似乎总是这样,因为每个开发人员都会从一个干净的主干创建他的分支,而不是一个经过一些开发人员修改的分支。
发布于 2011-10-19 21:16:30
读完你的问题后,我有点困惑。如果Developer 1还没有完成,并且还没有准备好将其先前的修改编译并部署到产品中,那么将Task 1合并到主干并不是一个好主意。
这样如何:每个开发人员都创建自己的分支"Task“。然后,他们可以同时在树枝上工作。在完成他们的任务后,他们可以将他们的胸肌合并回后备箱。这样,您就可以确保生产服务器上的项目是完整的,而不是某个人工作的一部分。
https://stackoverflow.com/questions/7827766
复制相似问题