2008-09-11 19 views
8

ReSharper代码清理功能(启用“reorder members”和“reformat code”)非常棒。您可以使用XML定义布局模板,然后根据您在模板中设置的规则,一个简单的组合键就可以重组整个源文件(或文件夹/项目/解决方案)。ReSharper代码清理/重新格式化代码功能与版本控制系统

无论如何,你认为这可能是像颠覆,CVS,GIT等VCS的问题?有没有可能导致许多不需要的冲突?

谢谢。

回答

16

是的,这肯定会导致问题。除了创建必须手动解决的冲突之外,当您签入已重新格式化的文件时,VCS几乎将每行都记录为已更改。这会让你或队友难以回顾历史,看看什么时候变了。也就是说,如果每个人都以相同的方式自动生成他们的代码(即,将该XML模板分发给团队),那么它可能会工作得很好。只有当不是每个人都在做同样的事情时,问题才会出现。

+10

我在这些情况下推荐的做法分两部分。在一次扫描中,您清理了代码,然后在第二次进行更改。两个不同的提交消息。通过这种方式,很容易就可以撤消所做的操作*并*知道如何修改您的修补程序。在我看来,在多次提交中承诺过多的事情是一种很好的做法。让其他人知道什么和为什么*更容易。 – 2009-07-19 03:42:45

2

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

0

这肯定会导致冲突。

如果你想在多用户环境中使用它,那么Resharper的配置需要将你的代码格式化为一组在你的组织中实施的标准,而不管用户是否使用了Resharper。

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

0

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

如果您计划重新格式化代码,那么要确保你不与那些改变的实际代码的功能混合格式化签入。这样,人们可以跳过通过简单重新格式化的检查。确保每个人都知道正在进行重新格式化也是一个不错的主意,以便他们可以反对他们是否在该领域持续开展工作。

7

我在等待一个IDE或使用一些基线格式规则总是将源代码编辑器,但允许每个个体开发者表示和自己喜欢的格式编辑代码。这样我就可以在下一行的开头放置我的开放式大括号,而不是在当前行的末尾,那里所有异教徒都似乎认为它行进了。

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

2

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

我仍然在等待someone else to do this,并且JetBrains清除了所有不完全支持的细节,以便让ReSharper基本保证完全符合StyleCop。

7
  • 只是格式化整个解决方案 一次
  • ,并确保每个开发人员 使用ReSharper的
  • ,并确保该格式 选项共享和版本 (代码风格共享选项)
0

我们正在开发一些与源代码级别的重构相关的工作。我们称之为Xmerge,它现在是Plastic的一部分。这只是第一种方法,因为我们正在研究更高级的解决方案。检查它here

0

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