如何在Visual Studio 2022中查看GitHub问题?

6

我如何使用Visual Studio 2022查看和集成GitHub问题?

当连接到Azure Repo时,VS Team Explorer窗口包括一个“工作项”视图,显示来自Azure Boards的未解决问题。我可以轻松地从其中一个创建分支,自动链接它并提交拉取请求。这种集成很棒。

当我连接到GitHub存储库时,该集成就会丢失。Team Explorer窗口不再包含“工作项”视图。由于无法查看问题,因此无法自动创建与问题相关联的分支。如果要将提交链接到问题,则现在必须手动输入问题编号。而“创建拉取请求”菜单项仅启动浏览器到GitHub页面;那里也没有集成。

我找到了一篇VS Code博客文章,可以在VS Code中实现许多此类功能(甚至更多),但我尚未找到任何适用于Visual Studio 2022的内容。从那篇文章中,我最感兴趣的是“处理问题”部分。如上所述,这是与Azure Repos配合使用的功能,但在与GitHub集成后丢失了。我该如何在GitHub和Visual Studio 2022中恢复该功能?
3个回答

3

“旧版”团队资源管理器做了很多好事,但是对于其他工具供应商来说,它也非常难以集成。通过新的 Git 体验,Visual Studio 团队选择了更为不可知论的方法。

旧版 Team Explorer 是用 .NET 4 编写的,并且非常适合与 Azure DevOps 集成。它起源于 2005 年 Team Foundation Server 首次发布时。随着时间的推移,其他供应商通过未记录和不支持的方式潜入 Team Explorer,但这在过去引起了许多有趣的问题。Team Explorer 窗口的概念也不理想,无法托管 GitHub、Azure DevOps、BitBucket 和每个想要列出的其他工具供应商,用户几乎没有控制元素顺序或隐藏某些瓷砖的方式。因此,它是错误的温床,需要将其移植到 .NET Core 和 x64,并支持进程外可扩展性,以正确支持 Visual Studio 2022。

因此,Team Explorer 及其旧的未记录的可扩展性点被删除,新的 Git 窗口诞生了。该窗口是一个纯 git 客户端,它是供应商不可知的。供应商可以向顶级菜单添加菜单项,但目前无法扩展新的 git 窗口。

同时,Visual Studio 2022不再支持内置浏览器窗口,该窗口占用大量内存,加载IE11,并且需要完全重新调整以支持Visual Studio 2022现在要求的x64外部进程加载。

所有这些工作现在使Visual Studio可以使用更多的内存,它更快,并通过将扩展程序移出进程,极大地提高了Visual Studio平台的性能和稳定性。不幸的是,所有这些都是以某些功能为代价的。

新的Git体验不再受限于Team Explorer窗口,成为Visual Studio中的顶级工具,并且终于可以使用更容易记忆的键盘快捷键。它也更快了,新架构使团队能够构建交互式变基、多仓库支持、子模块支持等功能。但是他们长期以来的重点一直在高级Git场景中,而不是构建供应商特定问题集成的支持。不过看起来这种情况可能正在改变。在Visual Studio 17.5预览版中,现在支持#...的自动完成:

enter image description here

未来,一些工具供应商可能会投资于原生集成到Visual Studio中。许多旧扩展在VS2022中已不再可用,或者作者仍在开发符合新要求的新版本。

另一方面,你有VS Code,它被GitHub自己内部使用,在浏览器中运行,powers github.devgithub codespaces,并且不带有Visual Studio 2022的遗留问题。这不是微软,而是GitHub扩展了vscode,并通过扩展和对编辑器的开源贡献为其平台添加了支持。GitHub在vscode中有不同的利益,他们拥有工程人员,知道如何扩展基于Atom的应用程序(他们基本上构建了这项技术),因此,他们的功能已经添加到vscode中。

这公平吗?我们是否也想要它在大型VS中?当然,但不幸的是,目前资金并没有花在这个方面。

有几种方法可以实现你想要的内容。但没有一种完全符合你的要求。

网络

主要的方法是从浏览器开始工作。在每个问题上,都有一个开发部分,您可以从中创建一个分支或从相关分支启动拉取请求:

enter image description here

然后,您可以立即在本地进行检查

enter image description here

或者导航到分支的代码面板,然后单击“在 Visual Studio 中打开”链接。这将使用您选择的存储库在正确的上下文中启动 Visual Studio,并为您本地检出分支以供开始工作。

enter image description here

在此分支上进行的任何提交都会自动与问题相关联,因此每次无需传递#issuenumber

命令行界面

除了从浏览器中工作外,另一种选择是使用CLI。如果您已安装GitHub CLI,则它将从远程列表中获取您的存储库的上下文,并且您可以直接从Visual Studio内置终端执行快速命令。

gh pr create

创建一个新的 PR。
gh issue list

快速列出您的未解决问题

gh issue develop #issuenumber

在远程创建一个分支,将其与您的问题关联并在本地检出该分支。

需要一点时间来熟悉命令,但如果您喜欢CLI,这是一种快速的工作方式。

enter image description here

在Visual Studio中

您可以从当前状态创建拉取请求,然后将您带到浏览器,并填充大部分数据。从那时起,问题自动完成也可以在浏览器中工作。

enter image description here

为了获得你想要的其他功能,你必须安装扩展。不幸的是,由于大部分功能已经移入到 Visual Studio 中,GitHub 已经停止对旧版 Visual Studio 扩展的开发。构建并维护适用于多个版本的 Visual Studio 扩展并不容易,因此我不认为这将重新启动。
我依赖于 Git Web links extension 来在工作文件上下文中快速切换到 Web 和 Visual Studio。

enter image description here

在设置中,您可以将默认行为设置为不复制,而是在浏览器中打开。
目前,通过公开列出的扩展名无法获得其他所需功能。Azure DevOps本身已删除或弃用了大部分这些功能,因此我不指望Visual Studio团队急于重新添加对问题跟踪的一流支持。

1
非常感谢您提供如此详细和有用的答案。如果我两天前看到它,我本可以授予您奖励。(对此很抱歉。)我完全理解为什么会发生更改。只是看到功能被删除而没有提及如何复制它们,真的让人非常失望。我非常感激您提供的使用其他工具创建可用工作流程的说明。 - Jason 'Bug' Fenter
不用谢。赏金固然好,但反馈更重要。 - jessehouwing

1

我期望这将被添加在2023年2月14日的下一个“补丁星期二”。 - Casey
欢迎来到StackOverflow并感谢贡献!我建议在Visual Studio中提供几个功能位置的屏幕截图。这将有助于更好地回答原帖,并提供一种安全的方式,确保未来的观众不必依赖可能损坏的链接。 - Ryan Naccarato
您的答案可以通过添加更多支持性信息来改进。请[编辑]以添加进一步详细信息,如引用或文档,以便其他人可以确认您的答案是否正确。您可以在帮助中心找到有关撰写好答案的更多信息。 - Ryan Naccarato

0

很遗憾,“工作项”视图和GitHub Repos的相关问题集成功能目前在Visual Studio 2022中无法直接使用。

您可能会发现一个提供此功能的Visual Studio扩展,但我暂时不知道有没有这样的扩展。

另一种选择是使用GitHub API检索问题,并创建自定义扩展以在Visual Studio 2022中显示问题。但是,这需要您进行自定义开发。


我还不确定是否能将此回答标记为可接受的。当我说“那里没有”的时候,你也说“那里没有”。然后在我说“我找不到任何东西”的时候,你说“查找扩展”。这是否意味着只剩下一个选项就像你所说的,“自己动手实现”?虽然我不喜欢这个答案,但它确实是一个答案。但这并没有解释为什么微软会在VS 2022中默默地废弃一个功能,然后在VS Code中重新创建它。 - Jason 'Bug' Fenter
@Jason'Bug'Fenter - 我也在想同样的问题。我可以找到多篇关于这个功能的博客文章和视频,但在VS2022 17.5中没有发现这个功能的迹象(应该在17.1或.2中出现)...这是怎么回事?微软给个问题集成吧。关于自己编写的建议通常不太有用,因为我们大多数人没有时间构建和维护这样的东西。 - Scuba Steve

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接