【问题标题】:Team Foundation Server: Cloning a Collection's Project into a new CollectionTeam Foundation Server:将集合的项目克隆到新集合中
【发布时间】:2011-06-15 08:41:58
【问题描述】:

我们希望为下一个版本的应用程序开发创建一个新的 Team Foundation Server 集合。我们当前版本的源代码将在很大程度上不适用,除了一些应该或多或少保持不变的 DLL。我们想创建一个新集合,但想知道是否能够从现有集合中克隆 DLL 项目以保留历史记录。

这可能吗?我们意识到,如果 DLL 需要任何错误修复,这可能会带来一些“双重维护”问题,但我们并不太担心这种情况。

到目前为止,我已经想出了一些资源。一些 MSDN 帖子将人们指向Splitting a Team Project Collection。然而,那里的问题是每个集合中只能有一个项目。 IT 声明:

一个项目不能存在于多个集合中。在您删除拆分集合之间的所有重复项目之前,您将无法启动重命名的集合。

这并不是我们真正想要的。我们希望在每个集合中维护这两个项目的历史记录。

否则,我看到了 TFSConfig 命令。它包含一个 /clone 选项,但我不太确定它的用法(也很难找到其他示例),并且它提到它也主要用于 splitting

我们是否想做一些不可能的事情?如果我们真的需要历史,我们是否需要复制源并将其作为新项目添加到新集合中并引用旧集合?谢谢。

【问题讨论】:

  • 您能详细说明为什么您需要一个全新的系列吗?项目集合背后的想法是,您基本上可以在同一组硬件上托管两个完全独立的 TFS 实例。你确定你不想只是为了你正在做的事情而分支到一个新的团队项目吗?
  • 这也是我们考虑过的一点。我们认为拥有一个新系列会更有意义,因为尽管它是相同的产品,但大多数代码库将完全不同。这将是一个与现有项目没有任何关系的独特实体。因此,对我来说,拥有一个新集合是有意义的,这样我们就可以单独备份/归档旧集合。如果这确实是一个坏主意,我愿意接受更好的建议。
  • 另外,我们去年才开始使用团队基础服务器。我们的项目结构发生了几次转变,并认为这是一个纠正我们所犯错误并大体清理问题的机会。
  • 一个新的 TPC 实在是太过分了。考虑一个事实,如果您只是使用另一个团队项目,甚至是现有 TP 中的迭代和分支,那么您已经完成了。如果您想解决问题,请与整个团队明确说明。

标签: .net tfs


【解决方案1】:

正如其他评论者所建议的那样,您可能不想为此目的开始一个新的团队项目集合。

反对创建新 TPC 的正常原因是:

  1. 在两个团队项目集合之间共享代码或工作项非常困难。这几乎就像您正在连接到新服务器一样。
  2. 除非您的项目非常大,以至于您将来可能需要将集合移动到它自己的 SQL 服务器上,否则新的 TPC 没有太多价值

但是,如果您确实决定要在同一服务器上创建现有 TPC 的副本,请遵循以下一般步骤:

  1. 打开 TFS 管理控制台,转到团队项目集合
  2. 选择您现有的收藏并选择“分离收藏”
  3. 等待分离完成。此过程将“共享”数据从配置数据库(如组/身份)中复制出来,并将其存储在集合数据库中。
  4. 分离完成后,在 SQL 中备份数据库
  5. 在管理控制台中,选择“附加集合”并选择您刚刚分离和备份的数据库

然后可以在同一台服务器(或另一台服务器,如果您想将其移动到那里)上执行这些步骤

  1. 使用新的数据库名称恢复数据库备份
  2. 在 TFS 管理控制台中,选择“附加集合”并选择您刚刚恢复的数据库。
  3. TFS 将查看此数据库的 GUID(存储为扩展属性),它会发现它与服务器上当前正在运行的集合相同,并自动为其赋予新的 GUID。
  4. 此时,您应该运行了两个集合。

【讨论】:

  • 这个方法可以用来创建一个重复的集合进行测试吗?
  • 好吧,我们最终只是创建了一个新集合并丢失了历史,但这是一个非常有用的帖子。
  • 将 TFS 2010 与 SQL Server 2008 结合使用并在同一个 SQL 实例中创建新的 TPC,我得到了两个集合。然而,新的收集被停止了。 TFS 管理控制台阻止启动新集合,因为新旧有同名的项目,这是不允许的。请参阅有关拆分 TPC 的文档以确认。
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-07-04
  • 2017-01-18
  • 2017-08-08
  • 2014-08-13
  • 2018-10-25
  • 1970-01-01
相关资源
最近更新 更多