Version control 错误编号注释
你为什么要加上 //错误1024 注释到源代码控制的代码库中? 大多数错误跟踪和源代码控制系统都有更好的设备来跟踪这些信息。Version control 错误编号注释,version-control,bug-tracking,Version Control,Bug Tracking,你为什么要加上 //错误1024 注释到源代码控制的代码库中? 大多数错误跟踪和源代码控制系统都有更好的设备来跟踪这些信息。 在源代码管理中,标签或注释可用于签入。在bug跟踪器中,可以将修订号添加到bug的解决方案中。那么为什么要对代码进行注释呢?特别是因为这些注释的相关性非常短暂,而且它们往往会在代码库中堆积垃圾。纯粹的懒惰。当然,从长远来看,它需要更多的时间,但从短期来看“//Bug 1024”不需要任何努力。代码越多,情况就越糟。最终,我认为这是一种不好的做法。最好包括bug存在的原因(
在源代码管理中,标签或注释可用于签入。在bug跟踪器中,可以将修订号添加到bug的解决方案中。那么为什么要对代码进行注释呢?特别是因为这些注释的相关性非常短暂,而且它们往往会在代码库中堆积垃圾。纯粹的懒惰。当然,从长远来看,它需要更多的时间,但从短期来看“//Bug 1024”不需要任何努力。代码越多,情况就越糟。最终,我认为这是一种不好的做法。最好包括bug存在的原因(Y类型的foo没有属性Z)。如果您愿意,您可以随附“Bugid12345中的更多”
如果要在多个级别上进行集成,trac中的源代码视图可以直接链接到BugId。我一直这样做,直到Visual Studio 2008附带注释。当回顾旧代码时,立即发现在特定的代码决策背后至少有思想是有用的
是的,我知道你可以与以前的版本进行比较,但是当你只需要对小的代码更新快速感觉良好时,这是一个非常痛苦的问题。想象一下,你有一个新的bug,可以追溯到12345版中的更改。您查看日志,它会立即告诉您错误1024是进行更改的原因 然后,你可以去看看1024,看看是什么,为什么,什么时候,然后再做一个新的修复-一个规则他们所有人
如果错误号不在提交消息中,那么您必须搜索提交修复的错误-可能有几个(如果错误被报告不止一次)。前几天我在我们的代码库中发现了其中一个有用的错误 我说“为什么他在工作流程这么晚的时候第二次调用初始化函数?” 错误评论让我在问题描述中找到了正确的答案。当我重新装备代码时,我肯定会在测试中包含这个bug,并且没有重新引入它 虽然我会说,一般来说,我同意你的意见,我自己不插入这些
我更希望有问题的开发人员以一种更有意义的方式修复这个bug,这样我就不必一开始就对代码感到好奇。我同意你的看法,像这样的评论并没有真正的帮助,而且过于简短 但是,通过引用缺陷跟踪系统中的记录(或扩展到您可能拥有的任何知识管理存储库)对代码进行注释是非常有用和重要的 有时,更改代码以实现解决应用程序行为的特定问题的方法。有时,引入的解决方案根本不符合逻辑。通常情况下,当其他人更新代码时,作为重新分解工作的一部分,这段“坏”代码会被删除 因此,将代码标记为属于某个特定的bug修复程序可以使其在重新分解过程中可见,从而提示开发人员在更改代码之前查看bug描述。在bug重新打开的情况下,它也有帮助——如果你必须改变代码的同一部分几次,你可以考虑在替代方案中投资时间。
你可以考虑乔尔的MSOffice关于软件帮助的文章。据我所知,MS Office和MS Windows的代码中充满了类似的注释,这些注释解释了开发人员长期以来所做的决定。我发现,在解释可能出错的代码时,这些注释很有用,也可用于提交消息。如果您在浏览不熟悉的源代码时,看到一些不明显的东西,很高兴知道原因。不过,这是一种判断,并不是每一个bug修复都需要这样的解释——也许大多数bug修复都不需要这样的解释。我认为这是一个“我有一把锤子,那一定是一颗钉子”的例子。文本编辑器或IDE不是管理代码的唯一工具 最好在代码外部维护历史记录。当代码的含义不明显时,应在注释中说明
我同意bug编号应该出现在源代码管理提交消息中。我不这么做。我想不出有什么好的理由可以让你把缺陷ID放在代码中。我将把它放在发行说明/变更日志中 我发现有用的是在自动测试中使用缺陷Id作为名称的一部分:
[TestFixture]
public class Release_1_2_Bugfixes
{
[Test]
public void TestBug42()
{
Assert.AreEqual(42, CalculateAnswerToLifeUniverseAndEverything());
}
}
我也看到过这样做。如果有足够的理由相信有人在查看部分代码时会想知道bug编号,那么添加一条提到bug的注释可能会非常好(不过,希望它也能解释bug的重要部分) 是的,源代码管理提交消息还应该包含bug编号,查看修订日志可以为您提供相同的信息。。。但是,如果代码的同一部分被多次更改,但从最初的bug中学到的细节仍然适用,那么可能需要一段时间才能找到最初的更改来了解该bug
此外,当有很好的理由将代码从一个类移动到另一个类或重命名文件时,就会出现这种情况,这会使找到某段代码背后的原因变得更加困难(重命名不是SVN的问题,而是CVS的难题) 永远不要只添加bug编号。如果您对一个bug进行了多次签入,则应添加bug编号、主题以及任何限定符: 错误1111-Foo在64位系统上被破坏。修复#2,因为它在合并到主干后重新打开 有些系统有bug编号集成。在mxr.mozilla.org中,cvs日志显示中的bug编号会自动神奇地变成指向bugzilla.mozilla.org编号的链接。当你在挖掘代码时,这是一个巨大的节省时间的方法。我认为