8

ReSharper 代码清理功能(启用“重新排序成员”和“重新格式化代码”)真的很棒。您使用 XML 定义布局模板,然后一个简单的组合键根据您在模板中设置的规则重新组织整个源文件(或文件夹/项目/解决方案)。

无论如何,您认为这可能是关于 VCS(如 subversion、cvs、git 等)的问题吗?是否有可能导致许多不希望的冲突?

谢谢你。

4

9 回答 9

16

是的,它肯定会引起问题。除了创建必须手动解决的冲突之外,当您签入已重新格式化的文件时,VCS 会注意到几乎每一行都已更改。这会让你或队友很难回顾历史,看看什么时候发生了变化。

也就是说,如果每个人都以相同的方式自动格式化他们的代码(即,您将该 XML 模板分发给团队),那么它可能会运行良好。只有当不是每个人都在做同样的事情时,问题才会真正出现。

于 2008-09-11T11:44:21.603 回答
7

我正在等待一个 IDE 或一个编辑器,它总是使用一些基线格式规则保存源代码,但允许每个开发人员以他们自己喜欢的格式显示和编辑代码。这样我就可以把我的大括号放在下一行的开头,而不是放在所有异教徒似乎都认为的当前行的末尾。

我的猜测是我会等很长时间。

于 2008-09-11T12:12:18.540 回答
7
  • 只需重新格式化整个解决方案一次
  • 并确保每个开发人员都在使用 Resharper
  • 并确保格式选项是共享和版本化的(代码样式共享选项)
于 2008-10-09T12:49:27.973 回答
2

它肯定会导致冲突,所以如果有人并行处理它们,我会确保你不会重新格式化整个文件。

于 2008-09-11T11:33:38.913 回答
2

您可以使用StyleCop强制执行一套全面的标准,这几乎迫使每个人都使用相同的布局样式。然后,您需要做的就是开发与此匹配的 ReSharper 代码样式规范,并将其分发给团队。

我仍在等待其他人执行此操作,并等待 JetBrains 清除所有不完全支持的琐碎细节,以便让 ReSharper 基本上保证完全符合 StyleCop。

于 2008-09-11T22:56:10.240 回答
0

它肯定会引起冲突。

如果您想在多用户环境中使用它,那么 Resharper 的配置需要将您的代码格式化为一组在您的组织中强制执行的标准,无论用户是否使用 Resharper。

这样您就可以使用该工具来确保您自己的代码符合标准,而不是将您的偏好应用于整个代码库。

于 2008-09-11T11:45:12.597 回答
0

我同意之前的答案,即冲突是可能的,甚至是可能的。

如果您打算重新格式化代码,那么至少要确保不要将重新格式化签入与更改实际代码功能的签入混为一谈。通过这种方式,人们可以跳过过去的简单重新格式化的签到。确保每个人都知道即将进行重新格式化也是一个好主意,这样如果他们在该领域有正在进行的工作,他们就可以反对。

于 2008-09-11T11:59:36.900 回答
0

我们正在努力在源代码级别使用重构。我们称之为 Xmerge,它现在是Plastic的一部分。这只是第一种方法,因为我们正在研究更高级的解决方案。在这里检查。

于 2009-04-02T14:18:54.147 回答
0

编写一个脚本来检查源代码控制历史中的每个版本,应用代码清理,然后将其签入新存储库可能是一个好主意。然后将该存储库用于您将来的所有工作。

于 2010-03-23T13:51:06.897 回答