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

标签 visual-studio tfs version-control

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

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

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

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

有没有办法改进 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

最佳答案

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

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

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

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

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

更新 1:

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

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

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

enter image description here

更新 2:

您也可以引用这篇文章:Comparison keyboard shortcuts for Pending Changes in TFS设置以下比较的快捷方式:

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

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

  • 对于每个命令,在 中输入您想要的键盘快捷键按快捷键文本框并单击 分配 按钮。您可以为每个人设置如下快捷键,在我身边工作( 基于您其他操作的快捷方式设置,只是不要与其他人使用重复的快捷方式 ):
  • Shift+`
  • Ctrl+Shift+`
  • Ctrl+Alt+`

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

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

    关于visual-studio - Visual Studio - 如何始终显示挂起的更改,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/46065603/

    相关文章:

    c# - 能否在一台计算机上安装多个 Visual Studio 2015 测试代理?

    visual-studio - 使用 TFS 时如何手动解决冲突并将其标记为已解决?

    linux - 如何在 Linux 服务器上正确创建集中式 Git 存储库?为什么我在学习本教程后会出现此错误?

    android - 仅在 git 中为 android 项目分支 1 或 2 个文件

    javascript - AmCharts - 代码版本?

    c++ - 基于范围的 for 循环会抛出带有数组参数的编译器错误

    c - 如何在C中定义非常大的二维数组(例如1000*1000)

    visual-studio - 如何使用 cmake 标志为 Release 构建生成 pdb 文件?

    visual-studio - DevExpress ToolboxAnalyzer 声称即使修复后也没有引用信息

    c# - 给定映射路径时 Workspace.DeleteMapping 方法抛出异常