TFS中托管的git存储库中缺少额外的TFS功能

时间:2014-06-19 15:28:45

标签: git visual-studio tfs

当您使用Git作为TFS项目的源代码提供程序时,Visual Studio通常会在Team Explorer中提供许多功能,这些功能不适用于未托管在TFS中的Git项目。其中包括工作项,构建,报告和Web Portal功能的链接。

Picture showing some of the added features

我添加了与TFS项目的连接。但是,我从我创建的网络本地Git镜像克隆,并没有这些额外的东西。我创建了镜像因为TFS服务器从这里通过Internet而且我们的连接速度很慢。基本上镜像是使用在使用TFVC时可以使用的Team Foundation Server Proxy。

如果我从TFS克隆,那么这些功能可用,但我不希望直接针对TFS服务器进行推/拉。

如何在仍然使用镜像的同时保持这些额外的TFS功能可用?

1 个答案:

答案 0 :(得分:1)

这些功能的可用性似乎与Git存储库的origin远程绑定。必须将origin设置为TFS服务器。

从其他位置克隆时,默认情况下该位置为origin。同样,如果您从TFS克隆了存储库,但随后将origin更改为其他服务器(即使您将TFS服务器保持为不同名称的远程服务器),也会在Visual Studio中丢失这些功能。

您需要使用git命令行工具来修复此问题,因为目前没有用于管理遥控器的Visual Studio GUI。

如果您从镜像克隆,则在功能上恢复包括以下内容:

git remote rename origin mirror
git remote add origin <TFS Clone URL>

通过重命名origin遥控器,现有分支机构的跟踪更新得恰当,因此对mirror

进行推/拉这些分支

您可以从现有克隆(在存储库中运行<TFS Clone URL>)或从Team Foundation Server Web门户获取git remote -v。在Web Portal中有一个“克隆”按钮,在“代码”/“探索”下弹出所需的URL。它的格式通常为http://<server>:<port>/tfs/<collection>/_git/<project>

如果你是从TFS克隆的,但想要一个不同的遥控器(镜像)作为推/拉的默认设置:

git remote add mirror <Clone URL for mirror>
git branch --set-upstream-to=mirror/master master

这会将镜像添加为名为mirror的新远程。然后它会使master分支跟踪mirror/master而不是origin/master,这将导致Visual Studio在您单击推送或拉入Visual Studio时使用mirror

对于要推送/拉入镜像而不是TFS服务器的每个其他现有本地分支,您需要重复上面的最后一行。

注意:这仍然存在这样的限制:如果您通过Visual Studio发布分支,它会将上游设置为origin,因此您必须转到命令行才能将上游重置为mirror。但是,您可以在“未同步提交”选项卡上“推送到”mirror而不发布分支。这至少使它可行,但不幸的是与分支通常如何发布不一致。如果任何远程服务器是TFS服务器,或希望选择哪个远程服务器来发布新分支,那么希望更新版本的TFS能够使这些额外功能正常工作。