“后备箱”应该是什么?开发或发布
我有一个不幸的机会通过 Borland 的 StarTeam 进行源代码控制。不幸的是,它几乎没有什么事情做得很好,其中一个最大的弱点是它的视图管理。我喜欢 SVN 并且具有 SVN 心态。我们的问题是后期制作发布,我们花费了无数的时间将更改合并到“生产支持”环境中。
请不要骚扰我,这不是我做的,我继承了它,并试图提出一种更好的管理存储库的方法。无法切换到不同的 SCM 工具。
当前设置
- Product.1.0(TRUNK,当前生产代码,在此级别上有待修复的错误)
- Product.2.0(真正的主干,所有签入的内容都经过测试,然后发布下一个生产周期,此视图中发生了很多更改)
我的建议是交换它们,让所有开发都在主干上完成(生产),标记版本,并根据需要创建子视图来表示生产支持错误修复。
- 生产
- 生产.2.0.SP.1
我找不到任何文档来支持上述提案,因此我试图获得有关更改是否是个好主意以及您是否建议采取不同做法的反馈。
I have the unfortunate opportunity of source control via Borland's StarTeam. It unfortunately does very few things well, and one supreme weakness is its view management. I love SVN and come from an SVN mindset. Our issue is post production release we are spending countless hours merging changes into a "production support" environment.
Please do not harass me this was not my doing, I inherited it and am trying to present a better way of managing the repository. It is not an option to switch to a different SCM tool.
Current setup
- Product.1.0 (TRUNK, current production code, and at this level are pending bug fixes)
- Product.2.0(true trunk anything checked in gets tested, and then released next production cycle, a lot of changes occur in this view)
My proposal is going to be to swap them, have all development be done on the trunk (Production), tag on releases, and as needed create child views to represent production support bug fixes.
- Production
- Production.2.0.SP.1
I can not find any documentation to support the above proposal so I am trying to get feedback on whether or not the change is a good idea and if there is anything you would recommend doing differently.
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(3)
我使用受 Henry Kniberg 的文章 多个敏捷团队的版本控制。下面我引用一小部分:
总结一下:
我强烈建议您阅读整篇文章。
I use an intermediate approach inspired by Henry Kniberg's article Version Control for Multiple Agile Teams. I'm quoting a small part below:
To summarize:
I warmly recommend reading the whole article.
以下是我对构建构建流的一般建议:
基本上,您永远不会直接提交到 .fixes 或 master 分支 - 只有集成过程才能做到这一点。
无论如何,几乎所有源代码控制工具都支持这种模型。
Here's my general advice for structuring build streams:
Basically, you NEVER commit directly to a .fixes or the master branch - only an integration process does that.
Anyhow, pretty much any source control tool will support this model.
我同意你和克里斯·卡明斯基的方法。我们使用 StarTeam,这就是我们的使用方式。每个项目中的提示或主视图是当前开发线(在 StarTeam 术语中,这是与项目名称同名的默认视图)。每当我们在此视图上进行构建时,我们的构建服务器都会创建一个构建标签。发布是从某个构建标签开始完成的。
然后,我们将从该标签创建一个新视图作为生产版本分支,然后对该版本的任何错误修复都将应用于该视图(无论错误修复是在提示视图中完成并合并到分支还是反之亦然) ,只要它们确实合并到主开发视图中)。
此外,如果我们有一个需要长时间运行并且不会在下一个正常生产版本之前完成的特定项目,我们将使用“更改时分支”设置从“提示”视图中创建一个分支。这绝对不太理想,因为完成后必须进行大量合并,但它确实将该代码排除在主开发线之外,并确保它不会意外地最终进入生产版本。我们确实试图限制这些类型的项目,但有时是业务人员决定的。
这种设置对我们来说非常有效,并且对于新手来说似乎很容易理解和使用。
I agree with yours and Chris Kaminski's approach. We use StarTeam and this is how we use it. The Tip or Main view in each project is the current development line (in StarTeam terms this is the default view that has the same name as the Project name). Anytime we do builds on this view our build server creates a Build Label. A release is done as of a certain build Label.
We would then create a new View as of that Label as the production release branch and then any bug fixes to the release would be applied to that view (whether bug fixes are done in the Tip view and merged to the branch or vice versa is irrelevant, as long as they do get merged into the main Development view).
Also, if we have a particular project that is going to be long running and will not be completed prior to the next normal production release, we will do a branch off of the Tip view with the Branch on Change setting. This is definitely less than ideal since much merging must be done once it is complete, but it does keep that code out of the main development line and ensures it can't accidentally end up in a production release. We do try to limit these types of projects, but sometimes the business folks dictate them.
This setup has worked very well for us and seems to be easy for new folks to understand and work with.