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

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

ReSharper Code Cleanup/Reformat Code feature vs Versioning Control Systems

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

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

谢谢。


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

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


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

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

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


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

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


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


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


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


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

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


这肯定会引起冲突。

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

通过这种方式,您将使用该工具来确保自己的代码符合标准,而不是将首选项应用于整个代码库。


推荐阅读