我正在为我们的项目选择一个错误/问题跟踪系统。 这个问题和这个问题有助于系统评估。但是,通过查看提供的各种产品,我提出了一个问题。
一些系统将源代码控制系统集成作为一项功能进行推广。这不是我以前使用过的东西,查看各种工具的网站,我找不到任何关于此集成提供的确切内容的详细信息。是不是通过我用来引发错误的同一个 Web 界面浏览我的存储库?
那么这种集成有什么好处呢?它将如何节省我的时间或使我们的产品更好?
我使用 Visual Studio Team Foundation Server 完成了这项工作,它不仅与源代码管理集成,还与数据仓库集成。例如,这允许它跟踪哪些错误是由哪些代码段引起的,显示哪些代码段需要更多的 QA。2010 版中即将推出的功能更加引人注目。
主要优点是您可以针对源代码的特定修订提出错误。这仅有助于在发现错误时识别代码库的状态。我认为这个领域的一个流行产品是Trac,它与 SVN 集成。
好吧,我想说这里有一个重要的原因,那就是你可以以一种面向任务/问题的方式工作。
我是说:
您所做的每一次代码更改(从小的快速修复到大的新功能)都将成为您喜欢的Jira或Rally或 Bugzilla、Trac、Mantis 中的一个问题。
这意味着问题/任务跟踪系统必须易于使用、快速、简单等,否则开发人员会讨厌它
然后将每个更改与问题相关联,您就完成了。您可以获得完整的可追溯性(非常适合差异调试,如果没有它,您会错过它)、更好的项目跟踪、更好的发布管理等等。
您可以将每个变更集/提交(取决于您的 scm 行话)链接到一个任务,或者,如果您的 scm 可以做到,则为每个错误修复创建一个分支,这样会更好。
基本上你得到的很简单:每一个变化都会被记录下来,或者至少与正确的问题/任务相关联。
如果您使用分支,您可以促进以下内容:始终在稳定的基线上工作,减少主线损坏(或使其原始,如果您愿意),决定哪些任务集成以及哪些任务保留到下一个版本,单独运行测试之前的更改合并等等。
Github基本上是相反的:与其说是包含源代码版本控制的错误/问题跟踪系统,而是插入了一些错误/问题跟踪的源代码版本控制。我不敢相信这里没有人提到它,因为这些天这种方式更常见。
但它非常强大,您基本上可以在问题中引用 git 提供的所有内容:提交、分支、拉取请求。Github 甚至安装了一些“自动”,将 PR 与“修复问题 #23”之类的内容合并,将自动关闭问题 #23。
Github 也非常方便,因为现在使用的大多数开源软件也托管在那里,您也可以在自己的问题/拉取请求等中引用所有这些库。此外,大多数围绕软件开发的典型现代商业基础设施也将与 Github 集成:Travis或Codeship会告诉你构建的情况,甚至自动部署它们,Hound或Rubocop会告诉你代码的外观,Usersnap或Trackduck会推送如果您不想使用他们的软件,请向您的 Github 问题报告错误。
如果您将其与 Github 进行比较,这里的答案中提到的 Trac 感觉真的很老。