【问题标题】:One project\solution in two different TFS两个不同 TFS 中的一个项目\解决方案
【发布时间】:2014-06-10 05:46:32
【问题描述】:

我想与两个团队共享一个项目\解决方案,最好是在两个 TFS 上。 让两个团队使用同一个 TFS 的选项不起作用,因为两个团队都无权访问其中一个 TFS,并且在此 TFS 上托管解决方案是一项要求。

如下所示:

项目\解决方案 -> Team1 -> TFS1(要求)

相同的项目\解决方案 -> Team1 + Team2 -> TFS2 (???)

我有哪些选择?有没有可以做到这一点的工具?我应该使用两个不同的版本控制包吗?

【问题讨论】:

  • “两个团队都没有访问权限”是什么意思?正确的解决方案是让其他团队获得他们需要的访问权限,而不是试图解决问题。
  • 我们没有 TFS1,所以我们不能让两个团队都在一个服务器上。
  • 如果您不拥有 TFS1,您为什么希望您的源代码最终存在?如果这是供应商,那么您应该指示他们使用您的 TFS 实例。

标签: visual-studio-2012 tfs


【解决方案1】:

您可以使用TFS Integration Plataform 在 TFS 的安装之间同步团队项目...但最好的世界是:访问一个 TFS trought TFS 代理。 另一种方法是使用 Git 存储库,您可以将存储库与您的存储库远程同步,但仅通过 TFS 访问工作项。

【讨论】:

  • 这仅适用于Get,因为签入您必须直接转到原始TFS。所以代理将无法工作...... TFS 集成工具也有缺点。
  • 最好的答案是允许所有开发人员与单个 TFS 实例进行通信。你考虑过VSO吗? Http://tfs.visualstudio.com
【解决方案2】:

确实有三种方法可以解决您的问题。现实情况是,如果您不能使用云,那么只有 #1 是有效的。请注意,使用#3 充满了痛苦和折磨。 Aa 与所有黑暗面的黑客/解决方法相比,没有什么能满足解决潜在问题而不是把它扫到地毯下的需求。

  1. 所有访问 - 唯一真正可行的解决方案,让所有必需的用户访问 TFS 服务器。我曾在医疗保健、银行、国防甚至保险业工作过。在所有情况下,在所有公司中,您都可以拥有一个所有需要的用户都可以访问的服务器。在某些情况下,这很困难,而且充满了专制统治,但最终还是可以做到的。
  2. Visual Studio Online - 虽然存在对云的恐惧,但如果您的外部设备确实无法直接访问您的网络,这可能是您唯一的选择。这将是那个公共服务器。如果您在欧洲,那么 MS 刚刚签署了一项协议,该协议表面上将一家美国公司的位于欧盟的服务器置于 Partiot 法案的范围之外(未经测试)。您还可以轻松地使用 TFS 集成工具在两者之间创建单向同步VSO 和您的本地服务器。
  3. 双向同步 - 这可以通过多种方式实现,但如果您在两端都进行了更改,则在合并时总是会受到影响。您可以使用免费的 TFS 集成工具,也可以使用 OpsHub 等市售工具。如果您使用 Git 作为 TFS 中的存储库,那么您可以使用命令行在两台服务器之间推送源代码......即使无法使用 USB 记忆棒进行通信。

使用 #1 或 #2 并且仅作为临时和短期措施使用 #3 我一直使用这些工具将一种方式从一个系统转移到另一个系统,即使这样也是一种复杂的体验。要双向移动内容,您将需要一个全职资源来解决冲突。

【讨论】:

    【解决方案3】:

    如果服务器可以相互通信,您就可以使用系统(类似于)复制。有一个主 Tfs 实例,然后外部站点使用代理来允许第二个团队在没有直接或始终可用的访问主服务器的情况下工作。

    或者,您也可以使用分支 - 您可以为外部团队的代码保留一个分支,然后将该分支合并到您的主线或从该分支合并到您的主线。在这个方案中,您可以通过在分支和外部站点之间复制来同步代码,因此如果没有直接的网络连接,您甚至可以在记忆棒上传输更新。但是,每次同步都会非常耗时,因为您的主服务器团队中的某个人必须通过分支来回合并代码。

    要考虑的另一件事是,是否有任何方法可以划分代码库和任务,以尽量减少两个团队之间的重叠。例如,如果一个团队提供了另一个使用的库。这只是将所需的合并最小化。

    【讨论】:

    • 您打算如何进行复制?不支持 SQL 服务器复制。
    • @MrHinsh:“复制”在技术上并不正确,但它是一个经常与远程访问服务器(数据库和源代码控制)相关的术语,并且经常出现在有关此主题的搜索中。正如我所说,实际功能是使用 TFS 代理实现的:msdn.microsoft.com/en-us/library/ee248710.aspx
    • 我不同意 :) 仅仅因为人们使用该术语不正确且不一致并不意味着应该复制它们。但是,代理服务器在这种情况下将不起作用。代理服务器是只读的,您总是写回主 TFS。此外,它仅支持源代码,不支持构建、工作项或测试管理。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-05-03
    • 2019-07-07
    • 2011-02-21
    • 1970-01-01
    相关资源
    最近更新 更多