ReSharper 代码清理功能(启用“重新排序成员”和“重新格式化代码”)真的很棒。您使用 XML 定义布局模板,然后一个简单的组合键根据您在模板中设置的规则重新组织整个源文件(或文件夹/项目/解决方案)。
无论如何,您认为这可能是关于 VCS(如 subversion、cvs、git 等)的问题吗?是否有可能导致许多不希望的冲突?
谢谢你。
是的,它肯定会引起问题。除了创建必须手动解决的冲突之外,当您签入已重新格式化的文件时,VCS 会注意到几乎每一行都已更改。这会让你或队友很难回顾历史,看看什么时候发生了变化。
也就是说,如果每个人都以相同的方式自动格式化他们的代码(即,您将该 XML 模板分发给团队),那么它可能会运行良好。只有当不是每个人都在做同样的事情时,问题才会真正出现。
我正在等待一个 IDE 或一个编辑器,它总是使用一些基线格式规则保存源代码,但允许每个开发人员以他们自己喜欢的格式显示和编辑代码。这样我就可以把我的大括号放在下一行的开头,而不是放在所有异教徒似乎都认为的当前行的末尾。
我的猜测是我会等很长时间。
它肯定会导致冲突,所以如果有人并行处理它们,我会确保你不会重新格式化整个文件。
它肯定会引起冲突。
如果您想在多用户环境中使用它,那么 Resharper 的配置需要将您的代码格式化为一组在您的组织中强制执行的标准,无论用户是否使用 Resharper。
这样您就可以使用该工具来确保您自己的代码符合标准,而不是将您的偏好应用于整个代码库。
我同意之前的答案,即冲突是可能的,甚至是可能的。
如果您打算重新格式化代码,那么至少要确保不要将重新格式化签入与更改实际代码功能的签入混为一谈。通过这种方式,人们可以跳过过去的简单重新格式化的签到。确保每个人都知道即将进行重新格式化也是一个好主意,这样如果他们在该领域有正在进行的工作,他们就可以反对。
编写一个脚本来检查源代码控制历史中的每个版本,应用代码清理,然后将其签入新存储库可能是一个好主意。然后将该存储库用于您将来的所有工作。