是否有自动为您格式化代码的 TFS 签入策略?

Posted

技术标签:

【中文标题】是否有自动为您格式化代码的 TFS 签入策略?【英文标题】:Is there a TFS Check in Policy that auto formats code for you? 【发布时间】:2015-01-07 18:23:32 【问题描述】:

也许我正在寻找的东西不存在,但我听说在 TFS 中您可以设置某种方式在签入时自动格式化/样式化源代码。到目前为止,在我所做的研究中,如果您的签入被标记,“签入政策”似乎只会发送警报......是否有某种方式可以在签入时自动格式化代码,或者这只是一厢情愿思维?您能否提供/链接到示例。

【问题讨论】:

我对自动格式化了解最多的是CodeMaid,它可以在你保存的时候清理你的代码。 Resharper 具有在保存时自动格式化文件或使用代码清理功能格式化整个解决方案的功能。 TFS 和 Visual Studio 都有一个内置功能可以在签入时格式化您的代码(我不希望在许多项目中使用它)。我想成为我自己的代码的主人。 另见:***.com/q/3071953/736079 和 jetbrains.com/resharper/features/code_formatting.html 嗯。感谢您的答复。查看您的链接后,我发现它确实有一些有用的工具。您认为某些格式可能与TFS Events 相关联吗?我也看到了定制。 code maid 是否允许自定义格式,例如自动格式化单行 if's 是否添加 '' 和 '' 如果尚未添加? 我向我的经理提到了 resharper 和 codemaid,我猜他对使用第三方工具犹豫不决。 Productivity Power Tools 2013 似乎很有趣。有人有这方面的经验吗? 【参考方案1】:

在我的团队中,我们实施了一个签入策略,在签入之前对所有代码执行 AStyle.exe,您可以从 sourceforge 下载 AStyle。是的,我们喜欢项目中的所有代码都具有相同的格式和样式,是的,在 VS 中使用快捷方式很容易。在签入之前进行样式设置的好处是,当您比较同一文件的版本时,格式不会因签入的开发人员而改变。

【讨论】:

【参考方案2】:

这些并不是真正的直接答案,但它们可能对某人有所帮助:

对于许多语言,您可以在 Visual Studio 中键入时启用自动格式化(工具 > 选项 > 文本编辑器 > 语言 > 格式化),因此在签入之前整理代码应该不会太难.

您还可以使用“编辑”>“高级”>“格式化文档”按需格式化文档 - 这样您就可以在签入之前执行此操作(尽管您必须重新打开所有待处理的更改)

保持代码整洁通常很快/很容易(尤其是上面的代码)。如果你太沉迷于“完美”的格式,那么你会发现自己浪费了很多时间在缩进和布局上,而不是做有用的工作——当你回到几周后,同样的代码却发现你认为完美的代码仍然存在一些小故障,或者你的个人编码风格略有偏差。当您尝试在团队中工作时,这种行为甚至会导致与他人的风格冲突,这可能是一种严重的破坏性活动。因此,学习“足够好就足够好”是有价值的,不要浪费精力去追求完美。

最后,编写基于 TFS 事件并处理所有签入以强制编码布局样式的代码将非常容易。但是,如果您再次觉得需要/合理地付出大量努力,那么您可能会沉迷于文本布局的完美,并且可能会从更多地关注编写良好的可维护代码而不是使其看起来漂亮中受益。编译器不在乎,只要代码对您和您的团队成员可读,它可能就足够了。

【讨论】:

在签入时使用工具格式化代码的一个重要原因是不同的开发人员有不同的风格偏好。当开发一个。签入,存储库中的代码将与 Dev b 时的代码相同。签入 - 因此源比较将仅显示真正的代码更改,而不是格式更改。结帐时,各个开发人员可以使用他们喜欢的任何格式化工具来保持事物看起来像他们想要的样子。这对于“同一行或下一行花括号”战争特别有用! 我不同意。当作为一个单独的开发人员在一个项目上工作时,格式并不重要,并且可能很容易掌握。但是,当作为团队的一员工作时,如果多个团队成员各自有自己的风格和编辑器偏好,那么整个项目的格式不一致会减慢开发人员的速度。作为团队的一员,拥有一个可以自动执行约定的代码样式的工具非常有用。使用这样的工具并不是“沉迷于‘完美’的格式”,而是使用计算机来执行一些常见的约定。 关键是“只要代码对您和您的团队成员可读”。具有一致的格式/布局有助于提高可读性。

以上是关于是否有自动为您格式化代码的 TFS 签入策略?的主要内容,如果未能解决你的问题,请参考以下文章

TFS 2015 - 自定义路径策略实施?

TFS 策略 - 当代码不符合自定义准则时阻止签入

创建 TFS 自定义签入策略:检查注释是不是包含特定字符串

在 TFS 中为某些用户注册自定义签入策略

TFS2010:如果存在代码分析警告,则阻止签入

在TFS签入后自定义事件/操作