当您使用Git作为TFS项目的源代码提供程序时,Visual Studio通常会在Team Explorer中提供许多功能,这些功能不适用于未托管在TFS中的Git项目。其中包括工作项,构建,报告和Web Portal功能的链接。
我添加了与TFS项目的连接。但是,我从我创建的网络本地Git镜像克隆,并没有这些额外的东西。我创建了镜像因为TFS服务器从这里通过Internet而且我们的连接速度很慢。基本上镜像是使用在使用TFVC时可以使用的Team Foundation Server Proxy。
如果我从TFS克隆,那么这些功能可用,但我不希望直接针对TFS服务器进行推/拉。
如何在仍然使用镜像的同时保持这些额外的TFS功能可用?
答案 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能够使这些额外功能正常工作。