2016-11-30 108 views
-3

Visual Studio为我们提供了完善自定义工作环境的强大功能,包括我们希望如何格式化空白。我非常关心如何以及在哪里需要空格,大括号等。在将文件提交到TFS之前删除空白

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

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

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

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

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

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

+1

我看不出有什么这与源代码控制的事情。具有语法上重要的空白的语言,比如Python呢?那么纯文本文件呢?减价怎么样? 你不能认为空白是无用的。 –

+0

@el mojo,你是困难的,并试图成为唯一一个“正确方式”的英雄程序员。如果整个团队,禁止你,想要使用默认,那么这也是你应该做的。 –

+0

@MHHinsh我不想成为“英雄程序员”,我不是说我的方式是“正确的方式”。我更喜欢我的方式对我来说更好。我并不是要求所有人都采用我的方式。我碰巧喜欢两个空格而不是四个缩进。为什么源代码控件不够聪明,可以在提交之前去掉不必要的空白空间?为什么有能力定制我的格式,如果我们都必须使用相同的。你知道为什么每个人都喜欢四个空间吗? “因为这就是它永远的样子。”这也恰好是为什么以某种方式完成某件事情的最糟糕的答案。 –

回答

0

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

如果你坚持下去,下面是解决这个问题的方法(只适用于你的本地机器)。

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

在对话框中,使用以下设置添加项目。

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

根据您的的Visual Studio版本安装目录路径(X64/X86),命令选项可能会... ...

VS2010: C:\ Program Files文件(86) \微软的Visual Studio 10.0 \ Common7 \ IDE \ diffmerge。EXE
VS2012: C:\ Program Files文件(86) \微软的Visual Studio 11.0 \ Common7 \ IDE \ diffmerge.exe
VS2013: C:\ Program Files文件(86) \微软的Visual Studio 12.0 \ Common7 \ IDE \ vsDiffMerge.exe
VS2015: C:\ Program Files文件(86) \微软的Visual Studio 14.0 \ Common7 \ IDE \ vsDiffMerge.exe

在参数选项与离开它相同数量的参数VS建议并最终添加/忽略空间。例如,在VS2015这将是:你可以参考

%1 %2 /ignorespace 

更多细节此博客:Configure Diff to Show Whitespace

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

如何使用的WinMerge与TFS你可以参考: