【问题标题】:Visual Studio - how to ALWAYS show pending changesVisual Studio - 如何始终显示挂起的更改
【发布时间】:2017-09-06 01:46:14
【问题描述】:

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

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

Ecipe / 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 - 但保存后会一直存在(直到提交)。

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


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

【问题讨论】:

  • 您尝试过注释选项吗?
  • Git 用语中的“责备”。不。打开它需要做很多工作,而且您无法编辑文件。

标签: visual-studio tfs version-control


【解决方案1】:

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

我发现特别有用的功能是能够回滚文件中的特定更改。如果有人能更新它以使用 VS 2017,我会很高兴。

【讨论】:

  • 我使用 VS 2015,但它无法工作 - 启动时出现异常。可惜,那将是一个完美的解决方案。
  • @HankCa 我编辑了我的答案以包含指向有效 vsix 的链接。
【解决方案2】:

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

如果您的意思是要始终为每个更改的文件显示差异视图,我认为这没有意义。如果在一个大项目中有大量的文件更改,比较视图会消耗更多的内存和其他硬件资源,这会影响性能。

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

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

如果你想一起比较所有的文件变化,你可以尝试获取/下载不同版本的源到本地目录/工作区,然后使用比较工具如BeyondCompareExamDiffPro比较目录.目录中的所有文件都将在每个差异视图中进行比较。


更新1:

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

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

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


更新 2:

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

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

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

对于每个命令,在 Press shortcut keys 文本框中输入您想要的键盘快捷键,然后单击 Assign 按钮。您可以为每个在我身边工作的快捷键设置如下(根据您对其他操作的快捷键设置,不要与其他人一起使用重复的快捷键):

  • Shift+`
  • Ctrl+Shift+`
  • Ctrl+Alt+`

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

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

【讨论】:

  • 不,我的意思是在边距中显示标记,这样当我查看文件时,我可以看到它已更改(以及更改位置) - 就像编辑器跟踪更改功能一样。完全喜欢它,但与您当前的工作场所版本不同。我知道您可以与其他版本(例如服务器上的内容)进行比较,并为了简化事情,在一些深层菜单中保持差异,就像现在一样。当前的工作场所版本是您 90% 的时间会关心的版本。
  • 编辑器跟踪更改很棒,但是当您关闭文件时它会消失(即使您关闭然后立即重新打开)。
  • 一个好的解决方案是使用一系列键盘快捷键来快速获取差异。 CTRL + [, P 获取挂起的更改,如果文件已被修改,它将在列表中。不幸的是,compare ... 没有键盘快捷键,但如果有这个解决方案就完成了。
  • @HankCa 我们可以设置键盘快捷键CTRL + ], P快速导航到“Pending Changes”,然后选择列表中带有shift + double-click 的文件进行比较。请参阅上面的更新答案。
  • @HankCa 您是否通过更新的答案解决了问题?有更新吗?
猜你喜欢
  • 2016-05-29
  • 1970-01-01
  • 1970-01-01
  • 2017-06-02
  • 2020-09-23
  • 1970-01-01
  • 1970-01-01
  • 2017-09-15
  • 2016-03-30
相关资源
最近更新 更多