我曾使用Visual Studio Team Foundation Server完成此操作,它不仅与源代码控制集成,还与数据仓库集成。这使得它能够跟踪哪些错误是由哪些代码引起的,显示哪些代码需要更多的QA。2010版本中即将推出的功能更加引人入胜。
嗯,我想说这里有一个很大的原因,那就是你可以按照任务/问题导向的方式工作。
我的意思是:
你所做的每个代码更改(从小的快速修复到大的新功能)都将成为Jira或Rally或Bugzilla、Trac、Mantis等问题的一部分,你可以选择自己喜欢的跟踪系统。
这意味着问题/任务跟踪系统必须易于使用、快速、简单等等,否则开发人员会讨厌它。
然后将每个更改与问题相关联,就完成了。你可以获得完整的可追溯性(对于差异调试非常好,如果没有它,你会感到遗憾),更好的项目跟踪、更好的发布管理等等。
你可以将每个变更集/提交(根据你的SCM术语)链接到一个任务,或者如果你的SCM可以做到,为每个错误修复创建一个分支,这甚至更好。
基本上你得到的很简单:每一次变更都将被记录,或者至少与正确的问题/任务相关联。Github 基本上是相反的:不是一个带有源代码版本控制的错误/问题跟踪系统,而是一个带有一些错误/问题跟踪插入的源代码版本控制。我无法相信没有人在这里提到它,因为这种方式比另一种方式更为普遍。
但它非常强大,你基本上可以引用 git 提供的所有内容,也可以在问题中使用:提交、分支、拉取请求。Github 甚至安装了一些“自动化”功能,合并具有“修复问题 #23”的内容的 PR 将自动关闭问题 #23。
Github非常方便,因为现在大多数使用的开源软件都托管在那里,你可以在自己的问题/拉取请求中引用所有这些库等。此外,大多数典型的现代商业软件开发基础设施也将与Github集成:Travis或Codeship会告诉您构建的进展情况,甚至可以自动部署它们,Hound或Rubocop会告诉您代码的外观,Usersnap或Trackduck会将错误报告推送到您的Github问题中,如果您不想使用他们的软件。与Github相比,这里提到的Trac感觉真的很老。