Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/actionscript-3/7.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Version control 带注释的源代码版本控制(组织实践)-离开还是删除?_Version Control_Versioning_Comments - Fatal编程技术网

Version control 带注释的源代码版本控制(组织实践)-离开还是删除?

Version control 带注释的源代码版本控制(组织实践)-离开还是删除?,version-control,versioning,comments,Version Control,Versioning,Comments,在你开始用“不要这样做”、“糟糕的做法!”和“学会使用正确的源代码控制”来告诫我之前,请先听我讲完。我完全知道注释旧代码并将其永远留在那里的做法是非常糟糕的,我自己也讨厌这种做法 但我现在的处境是这样的。几个月前,我加入了一家软件开发公司。我在这家公司实习了几个月,大约一年后才加入。我们公司使用源代码版本控制(CVS),但不正确 以下是我在实习期间和目前的永久职位上发生的事情。每次我被分配到一个项目上工作(遗留,大约8-10岁)。一位高级同事没有创建一个CVS帐户,让我签出代码并签入更改,而是从

在你开始用“不要这样做”、“糟糕的做法!”和“学会使用正确的源代码控制”来告诫我之前,请先听我讲完。我完全知道注释旧代码并将其永远留在那里的做法是非常糟糕的,我自己也讨厌这种做法

但我现在的处境是这样的。几个月前,我加入了一家软件开发公司。我在这家公司实习了几个月,大约一年后才加入。我们公司使用源代码版本控制(CVS),但不正确

以下是我在实习期间和目前的永久职位上发生的事情。每次我被分配到一个项目上工作(遗留,大约8-10岁)。一位高级同事没有创建一个CVS帐户,让我签出代码并签入更改,而是从CVS导出代码,将其压缩并传递给我

虽然这位同事每隔几周检查一次所有的批量更改,但我们通常的做法是对实际的源代码本身进行细粒度的版本控制(每个文件以独立于其他文件的版本递增)。每当对文件进行更改时,旧代码都会被注释掉,新代码会在下面输入,整个部分都会用版本号标记。有关更改的注释放在文件顶部的“修改历史”部分中。最后,更改的文件被放置在共享文件夹中,准备好并等待批量签入

/*
 * Copyright notice blah blah
 * Some details about file (project name, file name etc)
 * Modification History:
 * Date         Version     Modified By     Description
 * 2012-10-15   1.0         Joey            Initial creation
 * 2012-10-22   1.1         Chandler        Replaced old code with new code
 */

code ....
//v1.1 start
//old code
new code
//v1.1 end
code ....
现在的问题是这个。在我正在工作的项目中,我需要从另一个项目中复制一些新的源代码文件(新的,因为它们以前在目标项目中不存在)。这些文件有很多历史注释代码和基于注释的版本控制,包括通常很长或很长的修改历史部分

由于这些文件是这个项目的新文件,我决定清理它们并删除不必要的代码,包括历史代码,然后从版本1.0重新开始。(尽管我讨厌基于评论的版本控制,但我仍然必须继续这种做法。不要问为什么不从版本0.1开始…)我在实习期间也做过类似的事情,没有人说什么。我的主管已经看过几次了,没有说我不应该做这样的清理(如果有人注意到的话)

但同一级别的同事看到了这一点,并表示不建议这样做,因为这可能会导致未来停机,并增加维护成本。例如,当在另一个项目中对原始文件进行更改时,这些更改需要传播到此项目。由于代码文件完全不同,这可能会使另一个进行传播的开发人员感到困惑。这对我来说是有道理的,也是一个正确的观点。我找不到任何理由来做我的清理,除了一个可笑的混乱的代码带来的不便

所以,长话短说:考虑到我们公司的做法,在从一个项目复制到另一个项目时,我不应该做这样的清理吗?对注释中包含完整历史记录的原始代码(副本)进行更改是否更好我可以为进行清理提供什么理由


PS to mods:希望您能给这个问题留出一些时间,即使出于任何原因您认为它不适合这样做。如果有任何不合适的地方,包括标签,我提前道歉。

我建议您自己使用一些版本控制-我推荐。为“上游”代码创建一个分支,该分支与您的高级同事当前拥有的代码同步。然后你可以有一个或多个分支来完成你的工作。您将很好地了解您使用
git diff
对“上游”分支所做的更改,您可以搜索您在该项目上所做的一切的历史记录等。这一切都是自动的,无需手动代码版本控制,文件始终是“干净的”,如果从另一个项目复制某个文件真的意味着(对于这些源代码而言)“分歧点”以及源代码和fork的并行独立演化,那么遗留历史和注释代码实际上是“白噪声”,可以很容易地消除。在修改历史的第一行smth中,仅提及“分叉点”就足以从父代进行未来可能的传播。像

...
 * Date         Version     Modified By     Description
 * 2012-10-25   1.0         ADTC            Created from 12.34 of <filename>
...
。。。
*按说明修改日期版本
*2012年10月25日1.0 ADTC从2012年12月34日创建
...
asker(ADTC)的附录:
除了以上的答案外,我想引述一点意见

[…]获取源代码,删除与谁做了什么相关的注释(历史注释),但保留关于源代码/类/方法做了什么的注释(信息性注释)。这就是评论部分的内容。它应该清楚地定义方法在做什么,如何实现,以及在什么情况下抛出异常


如果我选择你的位置,我更愿意修改其他源代码,并将其作为库在我的项目中使用

我认为答案是1)遵守公司政策,2)与相关人员会面,解释如何正确使用源代码管理,以及它将为公司节省多少时间/金钱,或3)寻找新工作。除此之外,我真的不知道除了提供精神支持之外我们还能为你们做些什么。也许这适合工作场所SE?谢谢你们。我想重申一下,我想知道的是,清理新文件是否会增加未来的停机时间,以及是否应该避免。并没有关于代码实践的文档化策略,也并没有提及是否在项目之间保留历史记录。我无法控制当前的实践,他们在许多项目中已经这样做(注释版本控制)多年了。他们正在使用C