visual-studio - 与 TFS 等效的 Visual SVN 功能
问题描述
我一直是 Visual SVN 的长期用户,但现在必须在工作中使用 TFS (TFVC)。
我仍在努力寻找适合我的工作流程。
我的问题:VS2017 的 TFS 插件是否具有与以下 Visual SVN 功能等效的功能?
或者如果不是,推荐的替代方案是什么?
1. 解决方案文件夹的图标叠加?
TFS VS 插件似乎没有显示解决方案文件夹的图标覆盖?
2. 在装订线中突出显示不同/修改的线条?
突出显示已在本地修改的行(与服务器/存储库相比)。
2.1 使用键盘快捷键导航?
在Visual Studio 2017中的差异(本地副本与服务器/存储库副本)之间导航(无需离开 VS 文本编辑器)
- alt+ ]:本地副本中的
下一个差异
VisualSVN.NextDifference
- alt+ :本地副本中的
[先前差异
VisualSVN.PreviousDifference
- ctrl+ alt+ :在选择时
z恢复差异
VisualSVN.RevertThisBlock
再一次,通过差异,我的意思是:
- 与存储库的副本相比,本地(工作/签出)副本。
- 不在磁盘上/保存/会话副本
在上述两种情况下,我当前的 TFS 工作流程都涉及使用单独的比较工具。
如果我必须进行编辑,要么在比较工具中(我失去智能感知和代码完成),要么不断切换回 VS 文本编辑器。
谢谢
解决方案
请注意,TFS 是一种提供源代码管理(使用 TFVC 或 Git)、报告、需求管理、项目管理...等的工具,但不适用于开发/编辑代码...
- 解决方案文件夹的图标覆盖?
默认情况下,Team Explorer 没有这样的功能。这主要取决于插件/扩展。而且我找不到现有的扩展来实现这一目标。如果可能,您可以尝试编写自己的扩展或在现有扩展的基础上进行修改。这篇文章可能会有所帮助:为什么我在 Shell Extensions TFS Power 工具中看不到图标叠加层?
- 突出显示排水沟中的修改线?
如果您的意思是在 TFS 中编辑在线代码,那么很遗憾没有这样的功能。但是,您可以在 Visual Studio 中签出文件,然后在 VS 中编辑文件。VS 可以突出显示您提到的更改。
alt + ] 和 alt + [:导航到下一个/上一个修改
在 VS 代码编辑器中,默认情况下您可以使用Ctrl+ -( View.NavigateBackward
) 快捷键。
和 Ctrl+ Shift+ -( View.NavigateForward
) 快捷方式,或为它们分配自定义快捷方式。
ctrl + alt + z:还原选择中的修改
在 VS 代码编辑器中,您可以使用Ctrl+z来撤消,使用Ctrl+y来重做。
对于比较,您可以使用VS比较文件,您也可以将其他比较工具(例如Beyond Compare
或ExamDiff Pro
)集成到VS中,参考我在另一个线程中的答案:Visual Studio TFVC Merge Lines Misaligned
更新:
如果您的意思是选择/撤消/重做本地副本和远程存储库副本之间的更改,不幸的是 VS 中没有这样的内置功能。
但是,您可以将其他比较工具集成Beyond Compare
到 VS 中,然后您可以在比较工具中编辑文件。
使用 Beyond Compare 作为外部差异工具:
转到工具| 选项| 源代码管理| Visual Studio Team Foundation Server,然后单击配置用户工具,然后 单击添加。输入以下内容:
- 扩大: *
- 操作:比较
- 命令:
<Path to BCompare.exe>
- 参数:%1 %2 /dn1:%6 /dn2:%7 /nh
例如:
将更改的行从 repo 文件复制到本地文件,您可以选择Next Section
并Prev Section
导航到下一个和上一个差异。您还可以使用比较工具中的快捷方式,例如Ctrl+R将选择的行或当前部分复制到右窗格。
推荐阅读
- javascript - 网页打开时Javascript第一次不起作用?
- wordpress - Wordpress 简码输出
- r - Roxygen 警告“无法打开连接”“权限被拒绝”
- reactjs - 测试反应组件状态 onChange
- c# - 编译时与运行时的 .NET 程序集绑定
- python - Pandas - 根据 groupby 中的其他列设置列的最佳方法
- excel - 如何使用数据透视表中的字段填充 Excel 用户表单组合框?
- ios - 如何允许用户通过 Firebase 在存储的配置文件中输入他们的信息,而无需让他们登录/注册?
- ios - AppDelegate applicationDidEnterBackground 在模拟器上工作但不在设备上
- bash - 试图找到 shell 命令以从文件中删除 2 个文件之间的公共行