Svn 您是否应该在代码和变更日志中对变更进行注释?

Svn 您是否应该在代码和变更日志中对变更进行注释?,svn,git,version-control,comments,cvs,Svn,Git,Version Control,Comments,Cvs,我注意到一种趋势,即开发人员对其更改的评论较少,理由是更改日志中有目的/日期/原因。他们有一些非常合理的说法,即如果我们需要两者,就会出现重复工作。我花了大量的时间跟踪变化。没有给出具体的方向,缺乏一致的方法让我有点恼火。通常情况下,人们会同时做这两件事吗?有没有我想尝试的工具来缩短搜寻时间。目前我们有cvs、git和svn实现。。如果更改代码但不更新注释,则注释将过期。我对这类事情非常挑剔,而且我忘记更新评论的次数比我想承认的要多。但对这一变化的描述(或者至少应该是)从来没有错过。我认为没有错

我注意到一种趋势,即开发人员对其更改的评论较少,理由是更改日志中有目的/日期/原因。他们有一些非常合理的说法,即如果我们需要两者,就会出现重复工作。我花了大量的时间跟踪变化。没有给出具体的方向,缺乏一致的方法让我有点恼火。通常情况下,人们会同时做这两件事吗?有没有我想尝试的工具来缩短搜寻时间。目前我们有cvs、git和svn实现。

。如果更改代码但不更新注释,则注释将过期。我对这类事情非常挑剔,而且我忘记更新评论的次数比我想承认的要多。但对这一变化的描述(或者至少应该是)从来没有错过。

我认为没有错。应该对代码进行注释,以便您可以轻松阅读代码。这对于有一个已经修复的bug的代码来说更为必要

这两个地方都应该有很好的注释,它们很可能包含重复的描述。然而,它们都是出于不同的原因使用的。当您通过源代码管理进行回溯时,通常是跟踪问题是如何引入的。有好的评论可以使这一过程变得容易得多。代码注释允许您在代码中查找当前错误或添加下一个功能


他们应该同时做这两件事,并理解这一点的重要性。

不知道是否使用注释工具,有些IDE(如eclipse)可以很好地与CVS集成,并准确地向您显示在使用CVS注释工具时,哪一行是由谁修改的。

不要在代码中添加解释更改的注释。这只是需要维护的另一件事,可能不会持续维护,导致更多错误和更多更改。使用源代码管理注释功能实现其目的

如果您需要在代码中的注释中解释为什么以某种方式执行某些操作,这很好。只要不是每次更改都需要它。这会导致混乱的评论,比如

// fixed bug #3365

代码中的注释应描述代码当前的功能。只有当代码的预期行为改变时,这些注释才会改变——如果修订只是一个bug修复,它们就不应该改变

更改日志中的注释应说明此修订版中所做的更改


推论:避免在代码注释中添加修订号/日期和进行更改的程序员的姓名。(多亏了两位乔纳森。)

这两位评论都是出于不同的目的。代码注释用于说明和解释代码的功能、工作方式、期望值和返回值。还有可能出现的例外情况


签入评论更多的是告知您所做的更改以及更改的原因。

工具可以帮助您投票。不幸的是,我需要很多工具来涵盖所有的情况。你可能会认为他们希望更多地注释代码,因为他们与源代码管理系统的交互较少。仅仅是让他们在变更日志中给出清晰的细节就让他们的习惯变得不好。稍微改变了一下关于你的问题。我一直在努力将这种想法用语言表达出来。变更日志中的注释不能更改,但任何人都可以随时更改代码中的注释。因此,代码中不应包含任何日期、名称或修订信息。我并不总是同意日期。如果该bug与编译器中的bug解决方案有关,那么在解释该漏洞的注释中包含平台、编译器版本和日期是很有帮助的。然后,5-10年后,你可以更自信地审查代码并删除黑客行为。@Jonathan Leffler:我同意——如果日期指的是外部对象,那么它就是代码“预期行为”的一部分,应该记录在代码注释中。我更新了帖子,希望能更清楚地说明这一点。(同样,如果这样做有意义的话,您可以在代码注释中包含程序员姓名,前提是您不提供仅出于该原因进行更改的程序员的姓名。)更改了关于您的问题抱歉。更改了关于您的问题有点抱歉。