在 VisualStudio/TFS 中比较源代码时如何忽略空白?

Visual Source Safe (pre TFS)中的比较工具有一个方便的复选框来选择“ Ignore White Space”。

现在我们在 VisualStudio2010中使用 TFS,而比较对话框不再有这个选项。(来自微软的荒谬疏忽!)

那么,有没有可能解决这个问题呢?

55310 次浏览

这是一个解决方案,似乎绕过了这个问题。

在 VisualStudio 中,选择 Tools/Options/Source Control/VisualStudioTeamFoundation System,然后单击“配置用户工具”按钮。

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

  • 分机: . *
  • 操作: 比较
  • 命令: C: Program Files Microsoft Visual Studio 10.0 Common7 IDE defmerge.exe
  • 参数:% 1% 2% 6% 7% 5/忽略

编辑:

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

VS2010: C: Program Files (x86) Microsoft Visual Studio 10.0 Common7 IDE defmerge.exe
VS2012: C: Program Files (x86) Microsoft Visual Studio 11.0 Common7 IDE defmerge.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
VS2017: C: Program Files (x86) Microsoft Visual Studio 2017 Enterprise Common7 IDE CommonExtended Microsoft TeamFoundation Team Explorer vsDiffMerge.exe VS2017: C: Program Files (x86) Microsoft Visual Studio 2017 Enterprise Common7 IDE CommonExtended Microsoft TeamFoundation Team Explorer vsDiffMerge.exe

在参数选项中,保留与 VS 所建议的参数数量相同的参数,最后只需添加/ignospace 即可。例如,在 VS2015中,它将是:

%1 %2 /ignorespace

VisualStudio 中的默认 diff 工具非常烦人。我建议您使用其他工具。 WinMerge 是我的最爱。它还有一个忽略空格的选项(菜单 剪辑-> 选择-> 比较一下-> 无视一切(在顶部的组框“ Whitespace”下))。

参见 使用 WinMerge 和 TFS

在 VS2015中,当比较单击一个小图标和 =符号时,可以“忽略空白”。
转到“查看/工具栏/比较文件”。在工具栏中点击“忽略修剪空白”。

更新2020 : 我们努力解决 VS 比较工具和 Tortoise SVN 之间的冲突,所以经过研究,我们决定安装 Devart 代码比较(免费版) ,它集成了 VS2015/2017/2019,SVN (Tortoise and Ankh) ,TFS,Mercurial,GIT 等文件资源管理器,所以不同比较工具之间不再有噩梦/困惑。试试看,非常有用。它还具有用于解决冲突和文件夹差异的 Merge,这在 SVN 由于某种原因不进行合并时非常有用。另外,单击左/右箭头复制更改是我非常喜欢的一个特性。

下面的 VS 图片来自 Devart 网站,但在我的例子中,我设置了代码比较,在 VS 之外打开它,而不是嵌入,我认为它表现得更好。在 VS Options > Source Control > Subversion Environment中,我有这个:

enter image description here

enter image description here

VisualStudio2017工具栏上有一个“ =”按钮,可以帮助您根据需要对文件进行比较。

Screenshot ofVisual Studio 2017 toolbar. The button with the equal sign is on the right, next to the lock icon. The tooltip for the button states "Ignore trim whitespace Ctrl+\, Ctrl+Space".

在 VS 2012中,这可能就是您正在寻找的东西,并且没有对 Diff 工具进行任何更改。

在 VS2012中打开比较屏幕,在顶部可以在工具栏中看到以下选项。因为它可能是相同的比较作为用户: 主截图。

enter image description here

VS2013是的中的默认 diff 工具让您可以忽略空格。按照标准差分程序进行。当 VisualStudio 提出这些差异时,请查看工具栏,在其中您将看到一个图标,它看起来像一个文档,下面有5个点,如下所示。此按钮用于切换显示的差异是否忽略空白。这对我来说已经足够好了; 我希望它忽略由缩进引起的空白变化。 VS 2013 toolbar button for ignoring whitespace