我目前是组织内部实施新版本控制系统(Subversion)的团队成员。关于如何处理代码格式化存在一些争论,我想就此话题获得其他人的意见和经验。
我们目前有大约10名开发人员使用不同的工具(由于许可和偏好)。其中一些工具具有自动代码格式化程序,而其他工具则没有。
如果我们允许“盲”签入,那么每次有人签入时代码看起来都会大不相同。这会使差异和合并等事情变得复杂。
我和几个人谈过,他们提到了以下解决方案:
关于第3点,概念是永远不会自动格式化代码并具有一些标准。现在,这似乎是我们倾向于的。我对这种方法有点犹豫,因为它可能导致开发人员花费大量时间手动格式化代码。
如果有人能够提供一些他们的想法和经验,这将是伟大的。
谢谢,
马丁
答案 0 :(得分:9)
出于美观原因,不要让工具/开发人员自动/手动重新格式化代码。修订之间的差异变成了一场噩梦。有一个编码标准并尝试使用工具集来尽可能地使新模块符合要求。修改现有模块的人应该坚持使用该模块中使用的约定,无论他们喜欢与否。
答案 1 :(得分:3)
如果#1不是一个可行的选择,#3可能是你的最佳选择。 #2会使个别开发人员难以在工作副本和现有文件之间进行差异检查,然后再将其检出并在其上运行自己的格式化程序至少一次。
选项#3主要是关于让人们养成习惯 - 如果每个人都能养成相同的习惯,代码格式化并不是那么麻烦。您必须格式化的唯一代码是您创建/触摸的代码;其余的将从结帐格式化。
答案 2 :(得分:1)
如果您运行的脚本以可接受的格式格式化代码(并且每晚都有夜间构建测试此代码),那么您可以为可以强制执行此标准的SVN签名提供预提交挂钩。
但是选项#3是最好的,因为在开发过程中更容易在IDE中设置格式规则。
答案 3 :(得分:0)
我不知道这是技术问题还是文化问题。
即使他们都使用相同的工具,大多数工具都允许您更改应用于文本的默认格式规则。
定义一些标准,通过同行评审和文化理解来强制执行这些标准。