这个推广模式有什么问题?

时间:2015-02-03 19:57:55

标签: svn deployment version-control

我正在与客户会面,他们描述了他们如何使用SVN将代码从开发用于测试到生产。我听到的确困扰着我,从那时起我一直在思考它。

我无法简单解释为什么我认为这是错的 - 也许你可以帮忙?

我的目标是提供一些客观的事实或措施来说服客户改变更多的东西,好吧,正常。如果我错了,这是一个很好的方式,那么我也想知道。

这是过程:

  1. 对各个任务进行了更改,提交在提交消息中包含任务ID。
  2. 为了将代码从一个级别提升到另一个级别,他们通过任务ID查询SVN,并找到为该任务更改的每个单独文件的特定版本。
  3. 它们生成一个脚本,用于检出目标服务器上步骤#2中的每个文件。
  4. 有时候他们想要部署多个任务。他们的脚本会通过并协调所有正在推广的任务​​所有所需的各种文件修订。
  5. 此客户不使用CI / CD工具。他们只使用这种增量方法进行部署。

1 个答案:

答案 0 :(得分:-1)

促销模型的问题在于它们会产生复杂性,但这种复杂性并不会给流程添加任何内容。分支的目的是允许多个开发流。在促销模型中,只有一个开发流,但现在涉及三个分支。有人必须从一个蒸汽合并到另一个蒸汽。 QA和Production都必须等待有人进行促销。

更糟糕的是,没有100%确定开发所开发的是QA正在测试的,以及QA测试和批准的是什么正在投入生产。毕竟,质量保证和生产正在使用两个独立的构建。

让我们稍微简化一下:两个分支,一个 dev 分支和一个 test 分支:

  • QA正在等待 test 的新版本。
  • 最后,开发人员可以将修订版90推广到 test 。如果一切顺利, test 上的内容与 test 上的修订版90相同。
  • QA测试 test 上的修订版90。他们发现了一个错误并将其报告给开发。
  • QA现在等待另一次促销。
  • 开发修复了修订版100中的错误。他们将此版本提升为 test 。同样,修订版100 中的内容应 test 上的相同。
  • QA现在可以测试 test 分支上的修订版100。

如果我们没有多个分支会怎么样?

  • QA测试修订版90.这与上面 test 的修订版相同。
  • 质量检查发现错误并将其报告给开发。
  • 开发修复了修订版100中的错误。
  • QA现在测试修订版100。

相同的过程,除非没有所有的分支伏都教。没有人必须记住从一个分支到另一个分支。没有人必须验证一个分支是否与另一个分支相同。

更重要的是,开发人员在第90版中构建的软件与QA正在测试的软件相同。无需重建软件,希望它是一样的。当QA决定特定版本可用于生产时,QA测试的相同软件将被提升。无需进行特殊构建,希望与QA测试相同。

可以这样想,只有一个开发流。开发正在开发该开发流的一角。 QA在测试早期版本时落后于时间。使用更旧的版本,生产甚至可以追溯到更晚。

最后,所有促销分支都会增加您的开发复杂性,而不会增加任何好处。生活和发展足够复杂。没有理由让任何一个更难。