将搁置集和 MyWork 迁移到新的域用户

Migrating shelvesets and MyWork to a new domain user

我们的 IT 决定将 AD 迁移到新域。现在,那些确实迁移了帐户的人面临着一个问题——他们失去了代码审查和搁置集。他们并没有真正失去它。它仍然可以通过 "Find Shelvesets" 访问并输入 olddomain\user。但是 "My Work" 现在已断开连接。甚至打开"My Work"查询,修改一个用户名给老用户,还是没有成功。

澄清一下 - 只有用户被移动到新域,而不是 TFS 服务器

有没有人做过这样的事情以及任何建议和解决方法?

不幸的是,他们没有正确移动域。如果操作正确,数据将转移给新用户。不幸的是,由于 TFS 现在有 2 条具有唯一标识符的记录,所以在搞砸之后没有适当的修复。无法删除或合并这些记录。

您应该能够在脚本中执行以下操作:

  • 创建一个工作区(tf vc 工作区)
  • 映射项目文件夹(tf vc映射)
  • 获取最新(tf vc获取)
  • 查询你老用户的所有搁置集(tf vc shevesets)
  • 循环中
    • 取消搁置 shelfset(tf vc 取消搁置)
    • 在当前用户下搁置一个新的(tf vc 搁置)
    • 撤消挂起的更改(tf vc 撤消)

其中许多命令支持 /format:xml 参数,因此可以轻松地在 PowerShell 脚本中调用它们并提取数据以用于后续步骤。

我不认为我的工作会恢复相关的工作项目和所有。我的作品已从 Visual Studio 的最新版本中删除,因此您可以利用这个时间来适应它。

其他可能丢失的东西:

  • "My Queries" 下的工作项
  • 我的容量
  • 工作项关联
  • 工作区中的待定更改

正确的TFS域迁移方法是先挂起服务器,再进行账号迁移,然后运行 tfsconfig identities:

 {Server install path}\Tools>TfsConfig.exe identities /change /fromdomain:old /todomain:new /account:old /toaccount:new

但这只能在 TFS 尚未将新身份同步到数据库时才能完成。这可能有助于将来的问题,因为他们会转移新用户。