【发布时间】:2010-10-28 14:51:56
【问题描述】:
在计算签入版本之间的差异时,哪些源代码控制产品具有忽略空格、大括号等的“差异”功能?我似乎记得 Clearcase 的 diff 做到了这一点,但 Visual SourceSafe(或至少我使用的版本)没有。
我问的原因可能很典型。团队中四个完全合理的开发人员有四种完全不同的方式来格式化他们的代码。在检查出其他人上次更改的代码后,每个人都会立即运行某种程序或编辑器宏来按照自己喜欢的方式格式化。他们进行实际的代码更改。他们签入他们的更改。他们去度假。两天后,这个已经运行了两年的程序崩溃了。分配给这个 bug 的开发人员做了版本之间的 diff,发现了 204 个差异,其中只有 3 个是有意义的,因为 diff 算法很蹩脚。
是的,您可以制定编码标准。大多数人都觉得它们很可怕。每个人都可以吃蛋糕的解决方案似乎更可取。
=========
编辑:感谢大家提出的一些很好的建议。
我从中得到的是:
(1) 最好使用带有插件类型差异的源代码控制系统。
(2) 找到具有合适选项的差异。
(3) 使用良好的源格式化程序并确定签入标准。
听起来像是一个计划。再次感谢。
【问题讨论】:
-
Clearcase 确实可以选择忽略空白差异。
标签: version-control