Version control 源代码集成对Bug跟踪系统有什么好处?

Version control 源代码集成对Bug跟踪系统有什么好处?,version-control,bug-tracking,Version Control,Bug Tracking,我正在为我们的项目选择一个Bug/问题跟踪系统。并有助于提供系统进行评估。然而,我有一个问题,通过查看各种产品的报价 一些系统将源代码控制系统集成作为一项功能来推广。这不是我以前使用过的东西,查看各种工具的网站,我找不到任何关于这种集成提供了什么的详细信息。这是否比通过我用来引发bug的相同web界面浏览我的存储库更重要 那么,这种整合能带来什么好处呢?它将如何节省我的时间或使我们的产品更好?主要优点是,您可以针对源代码的特定修订提出错误。这有助于在发现bug时识别代码库的状态。我认为这个空间中

我正在为我们的项目选择一个Bug/问题跟踪系统。并有助于提供系统进行评估。然而,我有一个问题,通过查看各种产品的报价

一些系统将源代码控制系统集成作为一项功能来推广。这不是我以前使用过的东西,查看各种工具的网站,我找不到任何关于这种集成提供了什么的详细信息。这是否比通过我用来引发bug的相同web界面浏览我的存储库更重要


那么,这种整合能带来什么好处呢?它将如何节省我的时间或使我们的产品更好?

主要优点是,您可以针对源代码的特定修订提出错误。这有助于在发现bug时识别代码库的状态。我认为这个空间中的一个流行的产品是与VSN集成的。

< P>我使用VisualStudioTeam Foundation Server完成了这一工作,它不仅与源代码管理集成,而且与数据仓库集成。这允许它跟踪,例如,哪些bug是由哪些代码引起的,显示哪些代码需要更多的QA。2010版中即将推出的功能更加引人注目。

与(SCM浏览器)一起,当您提交一个变更集时,如果日志消息包含Jira问题密钥(如“PROJ-123”),则可以在相应的Jira问题中插入一个链接,Jira将在PROJ-123中显示一个指向提及该问题的变更集的链接

Jira还可以与集成,以便在执行包含修复(即变更集)的构建时,该提交的日志消息中提到的Jira问题将获得关于构建状态的注释


由于问题跟踪器用于跟踪源代码中的问题,因此在集成的问题/源代码控制管理系统中可能会有大量的功能。

好吧,我想说这里有一个很大的原因,那就是您可以以面向任务/问题的方式工作

我的意思是:

  • 您所做的每一个代码更改(从一个小的快速修复到一个大的新特性)都将是您喜欢的或Bugzilla、Trac、Mantis中的一个问题

  • 这意味着问题/任务跟踪系统必须易于使用、快速、简单等等,否则开发人员会讨厌它

  • 然后将每一个变化与问题联系起来,你就完成了。您可以获得完全的可跟踪性(非常适合于差异调试,如果没有它,您将错过它)、更好的项目跟踪、更好的发布管理等等

您可以将每个变更集/提交(取决于您的scm行话)链接到一个任务,或者,如果您的scm可以这样做,则为每个错误修复创建一个分支,这样更好

基本上你得到的很简单:每一个变更都会被记录下来,或者至少与正确的问题/任务相关联

如果您使用分支,您可以促进这样的事情:始终在稳定的基线上工作,减少主线损坏(或使其保持原始状态,如果您愿意的话),决定哪些任务集成,哪些任务保留到下一个版本,在合并之前单独运行更改测试,等等。

基本上是另一种方式:与其说是包含源代码版本控制的bug/issue跟踪系统,不如说是插入了一些bug/issue跟踪的源代码版本控制。我不敢相信没有人在这里提到它,因为现在这种方式比另一种方式更常见

但它非常强大,您基本上可以引用git提供的所有问题:提交、分支、拉请求。Github甚至安装了一些“automagic”,将PR与“修复问题23”等内容合并,将自动关闭问题23

Github也非常方便,因为人们现在使用的大多数开源软件也都托管在那里,并且您可以在自己的问题/请求中引用所有这些库,等等。 此外,围绕软件开发的大多数典型现代商业基础设施也将与Github集成:或者会告诉您构建的情况,甚至自动部署它们,或者会告诉您代码的外观,或者如果您不想使用Github的软件,会将错误报告推送到Github问题中


这里的答案中提到的Trac与Github相比,感觉真的很旧

这与在“传统”系统的组合框中选择代码的版本有何不同?为什么我需要源代码集成?我想确定,如果我们沿着这条路线走下去,会有什么好处。