版本控制和网站分支

4
我们正在使用版本控制(SVN)管理一个Web应用程序。主干始终包含网站的最新良好版本。
我想听听其他团队如何管理同一站点的多个版本,以及如何发布不同的版本进行UAT、测试、错误修复和增强等操作?
假设我们的业务用户想要一个全新的功能...所以我们设置了一个新的分支来进行开发。如何发布分支而不影响主要的开发网站?我们应该将每个网站分支发布到唯一的端口吗? http://DevServer:80 = 主干 http://DevServer:8081 = 分支 001 http://DevServer:8082 = 分支 002 http://DevServer:8083 = 分支 003 http://DevServer:8084 = 分支 004
显然,我们还需要将项目文件部署到唯一的目录中,并正确映射IIS.... 这是常见的方法吗?最佳实践是什么?
3个回答

6
理想情况下,每个环境(生产、uat、测试、开发和ci)应该有一个独立的机器来运行。如果您没有实际物理机器的资源,则虚拟化是非生产环境的选择方式。
这也意味着您可以正确地测试所使用的各种依赖项和库的影响。
编辑:关于分支...
我们在这里以及我之前工作过的一些地方都会从主干创建一个集成分支。开发新功能的开发人员会从集成分支中创建分支,并重新集成到集成分支中。CI会在集成和主干上进行。可以在集成上进行非正式测试,但更正式的测试(UAT发布)来自主干。定期将从集成分支向主干进行集成。这还具有保护主干的额外好处。
trunk
  integration
    feature1
    feature2

1

RedBean book(免费)中对分支的描述非常好。尽管该书的目标是SVN,但分支策略描述适用于所有情况。

另一个很棒的免费资源是Microsoft Team Foundation Server Branching Guidance白皮书。它包括以下内容:

  • 并行开发
  • 定义分支
  • 在Team Foundation Server中创建隔离
  • 一般分支结构指导
  • 分支策略
  • 广泛的分支隔离领域
  • 创建您的分支策略
  • 定义您的代码推广模型
  • 功能小组:微软如何处理
  • 端到端实施场景

1
我认为OP并没有关于Subversion的问题。(这是一个转移话题,与真正的问题无关) - Brad Bruce
正如我在上面的回答中所说,红豆书包含有关分支策略的建议,这些建议不仅适用于SVN... - Mitch Wheat

1

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

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


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接