首页 > 解决方案 > 将工作项从 TFS 2018 迁移到 Azure DevOps 2020 无法迁移工作项之间的链接

问题描述

我正在探索将我们的组织工作项从 TFS 2018 (v. 16.131.28507.4) 迁移到 Azure DevOps 2020 (v. Dev18.M170.6) 的不同可能性。使用 Azure DevOps 迁移工具。

我现在正在努力使用部分迁移工具(v. 11.11)

所有工作项都会复制到目标环境,迭代和区域以及团队和团队区域都已到位。“ReflectedWorkItemId”字段也在我的目标中正确更新。

但在 Azure 中,目标环境中没有一个工作项与其子项或父项有任何链接。在迁移工具日志中,有很多警告与我的问题有关。

"[SKIP] [LINK_CAPTURE_RELATED] [RegisteredLinkType] target not found. wiSourceL=38673, wiSourceR=null, wiTargetL=12410"

Azure 中存在父 WI 和子 WI,但我猜我在配置中遗漏了一些东西。

在我的源代码中,我使用的是项目类型“敏捷”。在我的目标中,我从 Agile 创建了一个继承的项目(名称为“OrgAgile”,以便能够在流程模板中添加“ReflectedWorkItemId”字段。这可能是个问题吗?

我看到一个问题已发布在工具 GitHub ( https://github.com/nkdAgility/azure-devops-migration-tools/issues/964 ) 上,我自己在那里发布了一个问题,但还没有答案,所以我想我在这里试试。这可能是一个错误,但我想确保我没有做错配置。

下面是configuration.json。也许我已经从默认文件中删除/遗漏了对正确链接迁移至关重要的配置,或者其中包含冗余/冲突部分。

任何帮助、指点或烤肉都是最受欢迎的。

配置.json

{
   "Version": "11.11",
   "workaroundForQuerySOAPBugEnabled": false,
   "GitRepoMapping": null,
   "LogLevel": "Information",
   "Source": {
      "$type": "TfsTeamProjectConfig",
      "Collection": "http://<sourceServer>/DefaultCollection",
      "Project": "<sourceProject>",
      "ReflectedWorkItemIDFieldName": "TfsMigrationTool.ReflectedWorkItemId2",
      "AllowCrossProjectLinking": false,
      "AuthenticationMode": "Prompt",
      "PersonalAccessToken": "",
      "LanguageMaps": {
         "AreaPath": "Area",
         "IterationPath": "Iteration"
      }
   },
   "Target": {
      "$type": "TfsTeamProjectConfig",
      "Collection": "http://<targetServer>/DefaultCollection",
      "Project": "<targetProject>",
      "ReflectedWorkItemIDFieldName": "ReflectedWorkItemId",
      "AllowCrossProjectLinking": false,
      "AuthenticationMode": "Prompt",
      "PersonalAccessToken": "",
      "LanguageMaps": {
         "AreaPath": "Area",
         "IterationPath": "Iteration"
      }
   },
   "Processors": [
      {
         "$type": "TfsAreaAndIterationProcessorOptions",
         "Enabled": true,
         "PrefixProjectToNodes": false,
         "NodeBasePaths": null,
         "ProcessorEnrichers": null,
         "SourceName": "IterationSettingsSource",
         "TargetName": "IterationSettingsTarget"
      },
      {
         "$type": "TfsTeamSettingsProcessorOptions",
         "Enabled": true,
         "MigrateTeamSettings": true,
         "UpdateTeamSettings": true,
         "PrefixProjectToNodes": false,
         "Teams": null,
         "ProcessorEnrichers": null,
         "SourceName": "TeamSettingsSource",
         "TargetName": "TeamSettingsTarget"
      },
      {
         "$type": "WorkItemMigrationConfig",
         "Enabled": true,
         "ReplayRevisions": true,
         "PrefixProjectToNodes": false,
         "UpdateCreatedDate": true,
         "UpdateCreatedBy": true,
         "BuildFieldTable": false,
         "AppendMigrationToolSignatureFooter": false,
         "WIQLQueryBit": "AND [System.WorkItemType] NOT IN ('Test Suite', 'Test Plan', 'Shared Steps', 'Shared Parameter', 'Test Case')",
         "WIQLOrderBit": "[System.ChangedDate] desc",
         "LinkMigration": true,
         "AttachmentMigration": false,
         "AttachmentWorkingPath": "c:\\temp\\WorkItemAttachmentWorkingFolder\\",
         "FixHtmlAttachmentLinks": false,
         "SkipToFinalRevisedWorkItemType": true,
         "WorkItemCreateRetryLimit": 5,
         "FilterWorkItemsThatAlreadyExistInTarget": true,
         "PauseAfterEachWorkItem": false,
         "AttachmentMaxSize": 480000000,
         "AttachRevisionHistory": false,
         "LinkMigrationSaveEachAsAdded": false,
         "GenerateMigrationComment": true,
         "NodeBasePaths": [],
         "WorkItemIDs": null,
         "MaxRevisions": 5
      }
   ],
   "Endpoints": {
      "TfsEndpoints": [
         {
            "Name": "IterationSettingsSource",
            "AccessToken": "",
            "Organisation": "http://<sourceServer>/DefaultCollection",
            "Project": "<sourceProject>",
            "ReflectedWorkItemIdField": "TfsMigrationTool.ReflectedWorkItemId",
            "AuthenticationMode": "Prompt",
            "AllowCrossProjectLinking": false,
            "LanguageMaps": {
               "Area": "Area",
               "Iteration": "Iteration"
            }
         },
         {
            "Name": "IterationSettingsTarget",
            "AccessToken": "",
            "Organisation": "http://<targetServer>/DefaultCollection",
            "Project": "<targetProject>",
            "ReflectedWorkItemIdField": "ReflectedWorkItemId",
            "AuthenticationMode": "Prompt",
            "AllowCrossProjectLinking": false,
            "LanguageMaps": {
               "AreaPath": "Area",
               "IterationPath": "Iteration"
            }
         }
      ],
      "TfsTeamSettingsEndpoints": [
         {
            "Name": "TeamSettingsSource",
            "AccessToken": "",
            "Organisation": "http://<sourceServer>/DefaultCollection",
            "Project": "<sourceProject>",
            "ReflectedWorkItemIdField": "TfsMigrationTool.ReflectedWorkItemId",
            "AuthenticationMode": "Prompt",
            "AllowCrossProjectLinking": false,
            "LanguageMaps": {
               "Area": "Area",
               "Iteration": "Iteration"
            }
         },
         {
            "Name": "TeamSettingsTarget",
            "AccessToken": "",
            "Organisation": "http://<targetServer>/DefaultCollection",
            "Project": "<targetProject>",
            "ReflectedWorkItemIdField": "ReflectedWorkItemId",
            "AuthenticationMode": "Prompt",
            "AllowCrossProjectLinking": false,
            "LanguageMaps": {
               "AreaPath": "Area",
               "Iteration": "Iteration"
            }
         }
      ]
   }
}

标签: azure-devops-migration-tools

解决方案


这可能是由错误引起的。

讨论和可能的解决方案在这里找到:

https://github.com/nkdAgility/azure-devops-migration-tools/issues/964


推荐阅读