【问题标题】:Extra TFS features missing from git repository hosted in TFSTFS 中托管的 git 存储库中缺少额外的 TFS 功能
【发布时间】:2014-06-20 03:10:59
【问题描述】:

当您使用 Git 作为 TFS 项目的源代码提供程序时,Visual Studio 通常会在团队资源管理器中提供一些功能,这些功能对于未托管在 TFS 中的 Git 项目来说是不可用的。其中包括工作项、构建、报告和 Web Portal 功能的链接。

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

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

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

【问题讨论】:

    标签: git visual-studio tfs


    【解决方案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 发生

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

    如果您从 TFS 克隆,但希望将不同的远程(镜像)作为推/拉的默认值:

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

    这会将镜像添加为名为@9​​87654332@ 的新远程。然后它使master 分支轨道mirror/master 而不是origin/master 这将导致Visual Studio 在您单击Visual Studio 中的推或拉时使用mirror

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

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

    【讨论】:

      猜你喜欢
      • 2017-02-13
      • 1970-01-01
      • 2013-02-23
      • 2018-06-20
      • 2017-12-29
      • 1970-01-01
      • 1970-01-01
      • 2018-02-02
      • 2014-09-02
      相关资源
      最近更新 更多