2

我目前正在尝试将在工作组中的服务器 (SERVER_A) 上运行的 TFS2010 实例迁移和升级到域上另一台服务器 (SERVER_B) 上的 TFS2013。一切似乎都正常,但是当我打开 Visual Studio 并尝试连接到新的 TFS 实例并检索我的工作区时,它不存在。我已经阅读了很多关于“tf workspaces”和“tfsconfig identities”的文档,但我仍然很困惑,无法弄清楚发生了什么。我做了什么...

  1. 从 SERVER_A 导出所有 SQL 数据库和 Reporting Services 加密密钥并还原到 SERVER_B
  2. 在SERVER_B上安装TFS2013,但不做任何配置
  3. TfsConfig RemapDBs /DatabaseName:SERVER_B\NAMEDINSTANCE;Tfs_Configuration /SQLInstances:SERVER_B\NAMEDINSTANCE
  4. 继续 TFS2013 配置,选择“升级”选项,顺利通过。有一个关于更新 url 的警告,我这样做了,一切看起来都很好。

此时,如果我调用tf workspacesSERVER_B,我会看到所有工作区:

\Microsoft Team Foundation Server 12.0\Tools>tf workspaces /owner:* /collection:"http://SERVER_B:8080/tfs/COLLECTIONNAME/"
Collection: http://SERVER_B:8080/tfs/SFO 
Workspace  Owner         Computer  
---------- ------------- ---------- 
...
DEV-PC1    Administrator DEV-PC1 
DEV-PC2    Administrator DEV-PC2 
JOHND123   John Doe      JOHND123 
...

如果我从 SERVER_A 进行相同的调用,这就是我所看到的:

\Microsoft Team Foundation Server 2010\Tools>tf workspaces /owner:* /collection:"http://SERVER_A:8080/tfs/COLLECTIONNAME/"
Collection: http://SERVER_A:8080/tfs/COLLECTIONNAME
Workspace  Owner                  Computer  
---------- ---------------------- ----------
...
DEV-PC1    SERVER_A\Administrator DEV-PC1
DEV-PC2    SERVER_A\Administrator DEV-PC2
JOHND123   SERVER_A\John          JOHND123
...

因此,SERVER_A 将本地用户作为工作区所有者,迁移中的某些内容将这些本地用户映射到其他一些用户,我只能假设是域用户。在这个例子中(这只是从我所看到的完全混淆)本地管理员被映射到“管理员”。我假设这意味着域管理员。如果我在我的开发机器上打开 Visual Studio,在 Team Explorer 中输入域管理员帐户的凭据(与 SERVER_A\Administrator 不同的密码),我可以连接到新的 TFS2013 实例。但是,当我转到工作区列表时,它会显示我的计算机 (DEV-PC1) 的工作区名称,没有解决方案,如果我单击“管理工作区...”,则列表为空。

似乎这一切都归结为帐户映射的问题,但从我读过的内容中我不清楚如何处理这个问题。如果它有用,我也可以发布TFSConfig identities两台机器的命令的示例输出。我有一种预感,部分问题是大多数工作区的所有者是管理员(所有这些都是在我到达这里之前设置的),并且在 TFS2013 实例中存在域\管理员、SERVER_B\管理员和SERVER_A\管理员。也许 Visual Studio 很困惑?或者 TFS 在升级时可能会感到困惑?

任何和所有的帮助将不胜感激。我犹豫地承认我第一次成功地进行了此迁移作为测试运行,找出了我的工作区的所有配置,然后卸载了 SERVER_B 上的所有内容以重新开始(因此我可以截取整个过程的文档) . 我第二次尝试它,它没有工作。我真的不认为我忘记写下我第一次做的任何步骤,但我可能遗漏了一些东西。

4

1 回答 1

2

您需要按照将 Team Foundation Server 从一个环境移动到另一个环境中的说明进行移动。域中的身份与工作组中的身份不同(底层唯一标识符不同)。所有工作区、搁置集等都在那里,但与需要更新的身份相关联。

于 2015-03-07T03:12:06.737 回答