在将文件提交到TFS之前删除空格

时间:2016-11-30 21:06:57

标签: visual-studio tfs whitespace

Visual Studio为我们提供了完全自定义工作环境的强大功能,包括我们希望如何格式化空白。我非常关注如何以及在哪里出现空格,大括号等。

例如,我更喜欢将标签插入为空格。我也更喜欢缩进(制表符大小/缩进大小)只有2个空格(坦率地说,我不需要4个空格来看到该行已缩进)。

在我合作之前,这一切都很好。我使用的其他人似乎只使用空格/格式的默认值。这在使用像TFS这样的源控件时会导致问题。如果您比较我和同事处理的文件,则会显示空白的更改。我不想看到这些变化;它们并不重要。

请不要告诉我答案是整个团队应该使用相同的设置。这不是正确的答案。对于糟糕的设计,这个答案是个问题。如果每个人都被迫使用相同的设置,为什么能够自定义您的环境?

为什么TFS(或任何其他源代码控制)在根据文件类型提交文件之前不会删除不必要的空格?这有几个好处。一,保存文件所需的存储空间较少。第二,文件传输到源控制服务器应该更有效,因为文件较小(前两个好处可能可以忽略不计,因为文件可能仍然被压缩)。三,最重要的是,TFS(或任何源代码控制)在执行文件差异时将不再报告空白的变化。

当我在我的环境中查看/编辑文件时,将重新格式化我如何定义它。当其他人查看/编辑该文件时,它将被重新格式化为其规范。

目前有没有办法在TFS中执行此操作?

1 个答案:

答案 0 :(得分:0)

虽然您所说的非常合理,但我仍然想说最好的解决方案是让整个团队在代码中使用相同的标准来处理空白区域。毕竟,你是团队。

如果您坚持使用,下面是针对此问题的解决方法(仅适用于您的本地计算机)。

在Visual Studio中,选择“工具”/“选项”/“源代码管理”/“Visual Studio Team Foundation System”,然后单击“配置用户工具”按钮。

在对话框中,添加具有以下设置的项目。

  • 扩展名:。*
  • 操作:比较
  • 命令:C:\ Program Files \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ diffmerge.exe
  • 参数:%1%2%6%7%5 / ignorespace

根据您的 Visual Studio版本安装路径(x64 / x86),命令选项可能是...

VS2010: C:\ Program Files (x86) \ Microsoft Visual Studio 10.0 \ Common7 \ IDE \ diffmerge.exe
VS2012: C:\ Program Files (x86) \ Microsoft Visual Studio 11.0 \ Common7 \ IDE \ diffmerge.exe
VS2013: C:\ Program Files (x86) \ Microsoft Visual Studio 12.0 \ Common7 \ IDE \ vsDiffMerge.exe
VS2015: C:\ Program Files (x86) \ Microsoft Visual Studio 14.0 \ Common7 \ IDE \ vsDiffMerge.exe

在参数选项中,使用与VS建议的参数数量相同的参数,最后添加/忽略空格。例如,在VS2015中它将是:

%1 %2 /ignorespace

您可以参考此博客了解更多详情:Configure Diff to Show Whitespace

你也可以使用另一种选择。 WinMerge是。它还有一个忽略空格的选项(菜单编辑 - >选项 - >比较 - >忽略全部(在组框下"空白"在顶部)。

如何将WinMerge与TFS一起使用,您可以参考: