ReSharper代码清除/重新格式化代码功能与版本控制系统

时间:2020-03-05 18:51:22  来源:igfitidea点击:

ReSharper代码清除功能(启用了"重新排序成员"和"重新格式化代码")确实很棒。我们使用XML定义布局模板,然后简单的按键组合即可根据我们在模板中设置的规则重新组织整个源文件(或者文件夹/项目/解决方案)。

无论如何,我们是否认为这可能是有关VCS的问题,例如Subversion,CVS,Git等?是否有可能导致许多意外冲突?

谢谢你。

解决方案

回答

它肯定会引起冲突,因此,如果有人并行处理文件,我将确保我们不会重新格式化整个文件。

回答

是的,肯定会引起问题。除了创建必须手动解决的冲突之外,当我们检入已重新格式化的文件时,VCS还会记录几乎每一行都已更改的情况。这将使我们或者队友难以回顾历史记录并查看更改时的情况。

就是说,如果每个人都以相同的方式自动格式化代码(即,我们将XML模板分发给团队),那么它可能会很好地工作。只有当不是每个人都在做同一件事时,问题才真正出现。

回答

它肯定会引起冲突。

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

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

回答

我同意先前的回答,指出存在冲突甚至可能发生冲突。

如果我们打算重新格式化代码,则至少要确保不要将重新格式化签入与更改实际代码功能的那些混用。这样,人们就可以跳过经过重新格式化的简单签入操作。确保每个人都知道要重新格式化,这也是一个好主意,这样如果他们在该领域正在进行工作,他们可以反对。

回答

我正在等待一个IDE或者编辑器,该IDE或者编辑器始终使用一些基准格式设置规则来保存源代码,但允许每个单独的开发人员以自己喜欢的格式显示和编辑代码。这样,我可以将开放的花括号放在下一行的开头,而不是所有异教徒似乎都认为行得通的当前行的结尾。

我的猜测是我将等待很长时间。

回答

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

我仍在等待其他人这样做,并等待JetBrains清除所有不完全支持的琐碎细节,以使ReSharper基本上保证完全符合StyleCop。

回答

  • 只需重新格式化整个解决方案一次
  • 并确保每个开发人员都在使用Resharper
  • 并确保格式选项已共享和版本控制(代码样式共享选项)

回答

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

回答

编写脚本以检出源代码管理历史记录中的每个版本,应用代码清除,然后将其检入新存储库中可能是一个好主意。然后,将该存储库用于以后的所有工作。