gpt4 book ai didi

version-control - "trunk"应该是什么开发,或者发布

转载 作者:行者123 更新时间:2023-12-04 07:14:22 25 4
gpt4 key购买 nike

不幸的是,我有机会通过 Borland 的 StarTeam 进行源代码控制。不幸的是,它做的事情很少,最大的弱点是它的 View 管理。我喜欢 SVN,并且来自 SVN 思维模式。我们的问题是后期制作发布,我们花费了无数小时将更改合并到“生产支持”环境中。

请不要骚扰我,这不是我做的,我继承了它并试图提供一种更好的管理存储库的方法。不能切换到不同的 SCM 工具。

当前设置

  • Product.1.0(TRUNK,当前生产代码,并且在这个级别有待修复的错误)
    • Product.2.0(真正的主干任何 checkin 的东西都经过测试,然后在下一个生产周期发布,这个 View 发生了很多变化)

我的建议是交换它们,在主干(生产)上完成所有开发,在发布上标记,并根据需要创建 subview 来表示生产支持错误修复。

  • 制作
    • Production.2.0.SP.1

我找不到任何文档来支持上述提议,因此我正在尝试就此更改是否是个好主意以及是否有任何建议您建议采取不同的做法来获得反馈。

最佳答案

我使用了一种受 Henry Kniberg 的文章 Version Control for Multiple Agile Teams 启发的中间方法。 .我在下面引用了一小部分:

The big picture

OK, now I've gone through a fairly detailed example of how to put this pattern to use. Now let's back out a bit and look at the big picture.

In the mainline model, a branch is called a codeline (in fact, branch is considered to be an implementation of a codeline). Sometimes these are called streams.

A codeline's parent (i.e. the codeline that it originated from) is called its baseline. Mainline is the codeline that has no baseline.

So in our examples above we could conclude that:

  • The trunk is our mainline. It has no parent right?
  • All other codelines (release 1.0, team A work, team B work) have the trunk as baseline.

Here's a more complex example:

alt text
(source: infoq.com)

This picture tells us that:

  • The project X codeline was spawned from the mainline. The project is now complete, so the branch is closed.
  • Team A has an active work branch that was spawned from the mainline.
  • Team A also has an ongoing spike that was spawned from the work branch.
  • The release 2.3 branch is closed, since 2.3 is no longer in production and won't be maintained.

Each codeline has a relative firmness level with respect to its baseline, i.e. each codeline is either more firm or less firm (softer) than its baseline.

  • A firm codeline is stable, thoroughly tested, changes seldom, and is close to release.
  • A soft codeline is unstable, barely tested, changes often, and is far from release.

When drawing codelines, firm codelines branch upwards and soft codelines branch downwards. So looking at the picture above, we can conclude that:

  • Release 2.3 is firmer than mainline.
  • Team A work is softer than mainline.
  • Team A spike is softer than team A work.

总结:

  • 主干是 DONE 分支(总是可释放的)
  • 工作在可能不如主干稳定的工作分支(每个团队一个)中完成
  • 发布分支是在发布时基于主干创建的。

我强烈建议阅读整篇文章。

关于version-control - "trunk"应该是什么开发,或者发布,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2624280/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com