版本控制和网站分支

时间:2009-08-07 10:18:50

标签: svn iis branch

我们在版本控制(SVN)下有一个Web应用程序。主干始终包含最新的网站版本。

我想了解其他团队如何管理同一网站的多个版本,以及如何为UAT发布不同版本,测试,修复错误,增强功能等?

假设我们的商业用户出现了,他们想要一个打屁股的新功能......所以我们所做的就是建立一个新的分支来做我们的开发。如何在不影响主开发网站的情况下发布分支。我们应该将网站的每个分支发布到唯一的端口吗?

http://DevServer:80 =树干
http://DevServer:8081 =分支001
http://DevServer:8082 =分支002
http://DevServer:8083 =分支003
http://DevServer:8084 =分支004

很明显,我们还必须将项目文件部署到unqiue目录,并正确映射IIS ....

这是一种常用的方法吗?什么是最佳实践?

3 个答案:

答案 0 :(得分:6)

理想情况下,您应该为每个环境(生产,uat,测试,开发和ci)运行单独的机器。如果您没有实际物理机的资源,那么虚拟化就是实现非生产环境的方法。

这也意味着您可以正确测试您使用的各种依赖项和库的效果。

编辑:关于分支......

我们在这里所做的,以及我以前工作过的几个地方都有一个集成分支。开发新功能的开发人员从集成分支分支出来并重新集成到集成分支中。 CI在集成和主干上完成。可以对集成进行非正式测试,但更正式的测试(UAT版本)来自主干。我们会定期将集成分支集成到主干中。这有保护行李箱的额外好处。

即。

trunk
  integration
    feature1
    feature2

答案 1 :(得分:1)

RedBean book(免费)给出了分支的优秀描述。虽然本书针对SVN,但分支策略描述适用于所有。

另一个好的免费资源是Microsoft Team Foundation Server Branching Guidance白皮书。它是copvers:

  • 并行开发
  • 分支定义
  • 在Team Foundation Server中创建隔离
  • 一般分支结构指导
  • 分支策略
  • 分支隔离的广泛领域
  • 创建分支策略
  • 定义代码促销模型
  • 功能团队:Microsoft如何做到这一点
  • 端到端实施方案

答案 2 :(得分:1)

将不同的分支部署到不同的端口是一种解决方案,在Java-servlet环境中,将分支映射到不同路径的解决方案会更容易(我不知道IIS是否也是如此):< / p>

两种解决方案都应该运作良好。如果没有其他要求,我会选择使用所使用的技术更容易设置和维护的解决方案。