你如何跟踪Bugzilla的版本?

时间:2009-01-13 09:41:39

标签: versioning bugzilla

我们正在将我们的错误跟踪迁移到Bugzilla,这是一个非常古老的版本,并且我已经没有使用了Advil。

我们有一个已经存在很长时间的遗留应用程序。混合使用我们的版本管理已经过几次迭代,它在野外生成了许多不同的版本。更糟糕的是,由于合同限制,并不总是可以将客户端升级到最新版本,因此我们必须在其当前版本上进行分支,修复,测试和发布,从而产生另一个版本号。

最终结果是版本组合框非常长。最后,由于各种原因,我们希望跟踪三种不同的版本信息: 发现错误的版本(版本),我们计划修复的版本(里程碑)错误及其最终修复的版本(对建议开放)。事实上这是我的问题......这实际上可能是多个数字,我们对其中一些客户进行了追溯性修复(这种情况经常发生)。

这是我需要你的集体智慧的地方:

如何在Bugzilla中跟踪这些版本(找到,计划和多个修复)?

关于链接版本和错误跟踪的最佳做法是什么?


的答案

似乎克隆每个版本的bug是一种很好的跟踪方式,因此目标版本总是在里程碑和固定版本中跟踪,而错误的版本始终是本机版本。

同样要让每个克隆块都有原始错误,这样就可以将历史记录追溯到原始提交内容。

虽然我接受了答案,但我仍然欢迎您的意见。

4 个答案:

答案 0 :(得分:3)

通常,如果我们需要在多个已发布版本(通常是源代码存储库中的分支)中修复某些内容,则会为每个分支克隆错误,以便可以单独跟踪所有提交和发布状态。我认为我们唯一没有这样做的时候,改变与代码库本身没有直接关系,只是通过更新我们的库就无法修复。

对于一般的版本跟踪,这让我觉得这是一种合理的做事方式,因为我们通常只需要在任何时候支持2-3个主要版本(加上主干)。如果您有多个需要支持的不相交版本,例如客户特定的部署,然后事情将更难跟踪。 (可以说这会引起一般的麻烦,最好将事物统一到更中心的版本主题)。

答案 1 :(得分:3)

我使用Bugzilla不仅可以跟踪错误,还可以跟踪新功能,增强功能和模糊概念。对于每个计划和发布的版本,我都有一个跟踪错误(我在原始的Mozilla bugzilla上看到的,并且发现它很有用)。

因此,如果您有错误报告,请输入错误报告的版本号。创建其他错误(您计划修复它的每个版本一个),这些错误都依赖于(阻止)原始错误并阻止版本特定的跟踪错误。

如果阻止原始错误的所有错误都被关闭/验证(无论您的QA如何实施),您也可以关闭原始错误。

答案 2 :(得分:3)

我在TFS中寻找类似的功能,在进行一些调查时,我发现有一个增强请求来管理Bugzilla中的“目击”: “Bug 55970 - (bz-branch)Bugzilla需要更好地处理分支(实现目击)”: https://bugzilla.mozilla.org/show_bug.cgi?id=55970

还有一个提议的设计: https://bug55970.bugzilla.mozilla.org/attachment.cgi?id=546912

有关信息,我们将在TFS 2010中实现类似的功能,使用“Bug Parent”或“Bug Master”来保存有关错误本身的信息(repro步骤,严重性,技术信息,受影响的组件...... ),可以有“Bug Child”或“Sighting”类型的子项,它将保存特定于给定分支的信息(目标里程碑,优先级,该分支的特定信息......)。

答案 3 :(得分:2)

我们正在使用jira但仍然有这个问题。我认为这是一个需求问题,如何使用版本而不是任何一个工具。

谁使用版本以及如何使用它们? 版本如何与项目计划中的里程碑相关?

我们使用4个十分之一版本(major.minor.patch.buildNO)。 buildNo是构建时的SVN头版本#。每个版本都存储在JIRA中,并且问题具有影响版本和固定版本字段,这是一个多选项。

过了一会儿,我们有很多版本。 Jira确实允许我们以两种方式控制列表 1.存档版本(从选择列表中显示为灰色) 2.合并版本(将多个版本汇总到一个新版本 - 不撤消)

我们使用过Archive,但由于缺少撤消功能而避免使用Merge。所以我们仍然有许多版本的列表。

我确信你可以在Bugzilla中完成一些脚本和时间的合并操作,问题是:什么时候可以合并几个旧版本?

如果我已经发布,我是否需要知道在启动和发布之间有17个版本?我是否需要保持在构建1中找到的错误的知识,在2中修复,在7中再次找到,再次修复9?或者在1.0.1版本中发布的1.0.0版本中发现是否足够好?

今天晚些时候我将就这个话题提出一个大问题,但我已经知道了基本的答案: - 取决于您的团队如何跟踪事情。

实施很有趣,但这一切都归结为需求,目标以及从用户体验到解决方案的回归。当人们不一定知道如何使用他们想要使用的形式并不存在的东西时,这是很粗糙的。