c# - 在 Visual Studio 中以编程方式查询 Git

标签 c# git tfs visual-studio-2015

我们刚刚从使用 TFS 过渡到使用 Git 作为我们的 VCS。我们已连接到 Git,可以轻松 checkin 等。

但是我们有一个 Visual Studio 扩展需要为 Git 重写。以编程方式使用 TFS 相当简单,但我无法使用 Git 进行任何操作。 Microsoft 文档要么是错误的,要么是我做错了。例如,要获取对 Git 存储库的引用,请使用 TfsGitRepository 并通过 TeamFoundationGitRepositoryService 获取。它(据说)存在于 Microsoft.TeamFoundation.Git.Server 命名空间中。但是当尝试添加引用时,Visual Studio 声称 namespace 不存在;只有 Microsoft.TeamFoundation.Git.Controls 可以。

有人知道通过 Visual Studio 使用 Git 的可靠文档吗?或者怎么做?

编辑

我们正在使用 Visual Studio 2015

最佳答案

您提到的命名空间在 TFS 服务器 API 上。它在 TFS 客户端对象模型中不可用。要在本地使用 git,您需要确保有一个本地克隆,然后您可以使用 LibGit2(非托管)、LibGitSharp(托管)或直接调用和解析 git.exe 来与其通信。

Visual Studio 没有附带它自己的用于访问 Git 的对象模型,它实际上依赖于这些标准的开源库。 2015 年之前的 Visual Studio 附带了一个版本的 LibGitSharp。下一版本的 Visual Studio(即将推出)附带了一种访问 git 存储库的新方法并包装了 git.exe,在进程外对 git 执行操作。可以在 Team Explorer 扩展文件夹中找到包装器,但我不确定这些程序集上可用的支持级别:

C:\Program Files (x86)\Microsoft Visual Studio\VS15Preview\Common7\IDE\CommonExtensions\Microsoft\TeamFoundation\Team Explorer

如果您需要检查 TFS 服务器上可用的 git 存储库,您应该使用 REST api 来查询可用的存储库,然后在获取要克隆的正确存储库后转到克隆本地 git 存储库。

关于c# - 在 Visual Studio 中以编程方式查询 Git,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/40268920/

相关文章:

git - 在 TFS 2013 中将 TFS 项目转换为 Git 协议(protocol)

git - 为什么 git 忽略我更改的文件?

git pull --rebase 原始标记名?

git - 如何检查远程 git 存储库是否处于特定版本?

tfs - 在控制台中查看 TFS 变更集详细信息

visual-studio - 如何从外部进程打开 Visual Studio 中的现有工作项?

c# - 如何在 WPF 中绑定(bind)多种颜色来填充矩形?

c# - 是否有适用于 Linux 的 C#?

c# - 使用 Windows 自动化查找和调用没有祖先的按钮

c# - 为什么要编译? —> int foo = foo = 5;