如何从团队资源管理器中检索差异补丁?

How to retrieve the diff patch from Team Explorer?

我正在尝试实施 my own feature request to the Visual Studio extension CommitFormatter,为此我需要 git diff 补丁。我 可以 使用 libgit2sharp(我希望这很容易),但是,这会带来额外的依赖性。如果不需要的话,我不想在扩展上增加负担。

我希望使用 Team Explorer 的 API 之一可以获得相同的结果,但我有点不知所措 Microsoft.TeamExplorer.*.dll 库 [=24] =] 包含,但找不到任何好的 MSDN 页面。

我想要实现的是获取暂存区的 "diff patch",命令行中 git diff --cached" 的输出给你,然后使用团队资源管理器 API。类似于 libgit2sharprepo.Diff.Compare<Patch>(repo.Head.Tip.Tree, DiffTargets.Index) 会给你什么。

没有 Microsoft.TeamExplorer 程序集提供 git 差异、public 或私有。

根据版本,Team Explorer 使用 LibGit2Sharp 与 git 存储库(VS 2017 之前)交互或使用 git(VS 2017)。

但是,no 版本实际上会创建 git 个 diff 文件。差异视图从存储库中取出原始文件并计算差异并自行显示,它不使用补丁文件作为输入或中间步骤。

您应该使用 LibGit2Sharp 或调用 git 来生成差异。