【问题标题】:Using multiple Git repositories in a single Team Foundation Server project在单个 Team Foundation Server 项目中使用多个 Git 存储库
【发布时间】:2013-08-31 08:17:36
【问题描述】:

我已经开始使用 Team Foundation Service 2012(基于云的产品),因为他们宣布支持使用 Git 作为源代码控制解决方案。

我的初始测试是一个单一的项目,带有一个以项目命名的 Git 存储库。

一切顺利,我可以在 Visual Studio 2012 中克隆存储库、提交推送和拉取,更重要的是,工作项关联也正常工作。

然而,对于实际项目,将代码库拆分到 TFS 项目中的多个 Git 存储库更有意义。

这样做没有任何障碍,Team Foundation Service 的接口很好地支持了它....

但是

现在我发现在 Visual Studio 2012 中存在一些问题,我想知道是我做错了什么,还是它只是不完全支持的东西(还没有?)

  • 经过测试,我发现如果 Git repo 没有与项目同名,那么您将无法轻松克隆 repo。出现的默认 URL 始终假定 Git 存储库以项目命名。
  • 同样,当存储库名称不同时,您将完全失去将工作项与提交关联的能力。它还在 Git 存储库名称后显示“(本地)”,就好像它根本不知道它实际上与 TFS 项目相关联。

其他人找到了这个,也许是一个解决方案(同时仍然允许在同一个 TFS 项目下有多个 Git 存储库)?

更新: 找了几个链接,比如这两个

http://visualstudio.uservoice.com/forums/121579-visual-studio/suggestions/3811952-allow-multiple-git-repositories-in-a-single-team-p

http://social.msdn.microsoft.com/Forums/vstudio/en-US/dff9c737-fbd1-4ca8-9c32-3be14eb614ba/what-is-the-best-team-project-setup-for-using-git-with-tfs

所以至少有其他人撞到了它。

如果您使用 Git 远程推送到正确的 repo URL,则多个 repo 可以正常工作,但只有在工作项关联和克隆 repo 方面使用 Visual Studio 2012 集成时,它才会崩溃。

【问题讨论】:

  • “轻松克隆”是什么意思?你真的在克隆 repos 时遇到问题吗?
  • 是的,如果 repo 与项目的名称不同,当您在 Visual Studio 中点击克隆时,它会失败,因为目标 URL 默认为项目的名称。您可以通过手动编辑 URL 以在项目中定位所需的 repo 来解决此问题。这将使克隆工作,但与工作项目等的所有链接仍然丢失。
  • 我明白你现在在说什么,感谢您的澄清。
  • @EdwardThomson 没关系。我喜欢 MS 已经为我们 DVCS 追随者接受了 Git,但 Git 的全部意义在于使用多个存储库来分隔逻辑区域/项目等。如果他们能做到这一点,那将是锦上添花
  • 当然。适用于 Git 的 Visual Studio 工具(用于 Visual Studio 2012 的扩展)仍处于预览阶段。这些限制应该在 Visual Studio 2013 中得到解决。我们正在尝试在 Team Foundation Service 和 Visual Studio 集成上快速移动;这意味着有时很难协调时间表。给您带来的不便深表歉意。

标签: git visual-studio-2012 tfs


【解决方案1】:

这是可用于 Visual Studio 2012 的 Visual Studio Tools for Git 扩展的限制。

Visual Studio 2013 中的 Git 工具不存在此问题。

【讨论】:

  • 我正在使用 VS2013(上次更新),我遇到了同样的问题!
  • 我不确定你会面临什么,因为 2013 年支持同一个团队项目上的多个 git repos 很容易。
【解决方案2】:

确保连接时>ManageConnections> 你点击 repo(在项目下)而不仅仅是项目。

对于只有一个 repo 的项目,VS 可以解决。

【讨论】:

    【解决方案3】:

    我在 VS 2017 中遇到了完全相同的问题。 在我的连接菜单下,我注意到它列出了团队项目和旧的 repo(同名)。显然这是不正确的,因为我们已经重命名了旧的 repo 并添加了更多内容。

    解决了它进入管理连接模式并从那里重新连接的问题,这迫使 UI 在团队资源管理器中的团队项目下加载正确的存储库名称,然后我可以连接到工作项并签入代码。我认为团队资源管理器窗口喜欢缓存引用并且永远不会更新它们,除非你强制它。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2011-12-09
      • 2010-09-26
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多