Visual Studio - 如何始终显示挂起的更改

时间:2017-09-06 01:46:14

标签: visual-studio tfs version-control

我花了大部分时间在Git存储库中使用Eclipse或IntelliJ。我刚刚开始使用Visual Studio和TFS服务器的源代码。每个版本2015。

我没有适应版本控制差异,正在寻求帮助。

Eclipe / IntelliJ显示边距中的更改标记。虽然这并未提供有关更改的足够信息,但它会向您显示已进行更改的位置,您可以深入研究以查找更多差异信息。

VS / TFS在文件窗口中没有显示任何内容。我甚至不知道已经做出了改变。要知道任何事情,我必须打开Pending Changes窗口。在其中我可以右键单击并选择“与......比较”。但是当我对不同的文件做同样的事情时,最后一个显示的更改消失了,这使我做同样的事情,如果我想再次看到它。一遍又一遍......我发现这个工作流程很慢。我发现Set default action to Compare in Visual Studio 2013 Pending Changes window with TFS表明您可以移动双击文件以进入差异视图。这节省了一些时间和精力。

有没有办法改进VS / TFS,以便始终可以看到对文件的更改?与编辑器Track Changes https://www.codeproject.com/articles/109611/color-indicator-for-code-changes-track-changes-in非常相似 - 但是在保存之后(直到提交)仍然存在。

Visual Studio Track Changes

我浏览了https://marketplace.visualstudio.com/search?term=tfs&target=VS&category=All%20categories&vsVersion=&sortBy=Relevance,但我看不到任何东西。也许有人知道什么?

添加以下评论的屏幕截图。我讨论了如何计算出你可以看到内联差异,有时你可以编辑它们。我发现了为什么你不能编辑它们。因为文件位于/Temp。为什么VS会在那里创建一些差异,而另一些则在我不知道的文件位置。

enter image description here

2 个答案:

答案 0 :(得分:1)

手动比较不同版本之间的文件是预期的行为。

如果您想要始终显示每个已更改文件的差异视图,我认为这没有意义。如果在一个庞大的项目中有很多文件发生了变化,那么比较视图将消耗更多的内存和其他硬件资源,这将影响性能。

对于您提到的editor Track Changes,您可以相应地为VS设置它(已选中,它在VS 2015中设置为默认值)。我们可以看到,它可以识别文件本身的变化,并标记不同的颜色。从这个角度来看,实际上在检查更改之前实现了“始终显示挂起的更改”,然后更改在文件中标记为不同的颜色。

但对于TFS差异视图,它们用于比较不同版本。所以,他们是不同的。我认为总是显示未决的更改是不必要的,我们只需要根据需要立即和定期与之前的版本进行比较。

如果要将所有文件更改一起比较,可以尝试将不同版本的源/下载到本地目录/工作区,然后使用比较工具,例如BeyondCompareExamDiffPro比较目录。将在每个差异视图中比较目录中的所有文件。

<强> UPDATE1:

我们可以设置键盘快捷键CTRL + ], P以快速导航到“待更改”,然后使用shift + double-click选择列表中的文件进行比较。

在VS中指定或自定义键盘快捷键:

工具&gt;选项&gt;环境&gt;键盘  ,然后在“显示命令包含”文本框中输入“ View.TfsPendingChanges ”,并在“按快捷键”框中输入所需的快捷键(只需按下要映射的键),最后点击“分配”。 / p>

enter image description here

<强> UPDATE2:

您还可以参考这篇文章:Comparison keyboard shortcuts for Pending Changes in TFS来设置以下比较的快捷方式:

显示包含的命令文本框中一次输入以下命令名称:

  • TeamFoundationContextMenus.SourceControlPendingChangesSourceFiles.Compare.TfsContextPendingCheckinsCompareWithLatestVersion
  • TeamFoundationContextMenus.SourceControlPendingChangesSourceFiles.Compare.TfsContextPendingCheckinsCompareWithWorkspaceVersion
  • TeamFoundationContextMenus.SourceControlPendingChangesSourceFiles.Compare.TfsContextPendingCheckinsCompareWithPreviousVersion

对于每个命令,在按快捷键文本框中输入所需的键盘快捷键,然后单击分配按钮。您可以为我们这一方设置快捷键,如下所示( 根据您的其他操作的快捷方式设置,只是不要与其他人一起使用重复的快捷方式 ):

  • 移+`
  • CTRL + SHIFT +`
  • Ctrl + Alt +`

同样如下面的HankCa评论中所述,如果您更改为内联差异,那么您可以看到差异并编辑文件。当代码执行时。要获取内联比较,您可以添加比较文件工具栏并从其中一个下拉列表中选择它。如果您点击窗口标签上的“保持打开”图标,它将保留在屏幕上,您可以打开多个差异/编辑窗口。

对于temp diff文件,它是预期的行为,当你更改文件时,系统将在“AppData \ Local \ Temp \ TFSTemp”中创建TFS临时diff文件。这些文件的名称都是“vctmp4316_370233.cs

答案 1 :(得分:1)

VS Marketplace中有一个名为TFSPendingChangesMargin的扩展程序。我发现它非常有用,但它目前仅适用于VS 2013和2015.要使此扩展适用于Visual Studio 2015的第2版和第3版,您需要从here下载vsix。不幸的是,您需要禁用此扩展程序的自动更新,否则它将更新到市场中的版本。

我发现特别有用的功能是能够回滚文件中的特定更改。我很乐意,如果有人会更新它与VS 2017合作。