如何迁移指向新项目工作项的其他工作项的内联链接

How do I Migrate In-Line Links to Other Work Items That Point to New Project Work Items

我已将 Azure DevOps Migration Tools 设置为一切正常,只有一个例外。当内联 links 工作项被带过来时,link 仍然引用旧项目而不是新项目。我假设我遗漏了一些告诉工具仍然引用源项目的属性,但我无法在我的生活中找到所述属性。

示例: 有 2 个项目:“测试源项目”和“测试目标项目” 当“测试源项目”迁移到“测试目标项目”时,“测试目标项目”中的 links 仍然引用“测试源项目”中的原始任务。下面是我所引用内容的屏幕截图。

我希望 link 是:https://dev.azure.com/Company/Test%20Target%20Project/_workitems/edit/75

但我得到 https://dev.azure.com/Company/Test%20Source%20Project/_workitems/edit/75


我使用的版本是 8.9,这是我的配置:

{
  "Version": "8.9",
  "TelemetryEnableTrace": false,
  "workaroundForQuerySOAPBugEnabled": false,
  "Source": {
    "Collection": "https://dev.azure.com/Company/",
    "Project": "Test Source Project",
    "ReflectedWorkItemIDFieldName": "Custom.ReflectedWorkItemId",
    "AllowCrossProjectLinking": false,
    "PersonalAccessToken": ""
  },
  "Target": {
    "Collection": "https://dev.azure.com/grda365/",
    "Project": "Test Target Project",
    "ReflectedWorkItemIDFieldName": "Custom.ReflectedWorkItemId",
    "AllowCrossProjectLinking": false,
    "PersonalAccessToken": ""
  },
  "FieldMaps": [],
  "WorkItemTypeDefinition": {
    "sourceWorkItemTypeName": "targetWorkItemTypeName"
  },
  "GitRepoMapping": null,
  "Processors": [
    {
      "ObjectType": "VstsSyncMigrator.Engine.Configuration.Processing.NodeStructuresMigrationConfig",
      "PrefixProjectToNodes": false,
      "Enabled": true,
      "BasePaths": []
    },
    {
      "ObjectType": "VstsSyncMigrator.Engine.Configuration.Processing.WorkItemMigrationConfig",
      "ReplayRevisions": true,
      "PrefixProjectToNodes": false,
      "UpdateCreatedDate": true,
      "UpdateCreatedBy": true,
      "UpdateSourceReflectedId": false,
      "BuildFieldTable": false,
      "AppendMigrationToolSignatureFooter": false,
      "QueryBit": "AND [System.WorkItemType] NOT IN ('Test Suite', 'Test Plan')",
      "OrderBit": "[System.ChangedDate] desc",
      "Enabled": true,
      "LinkMigration": true,
      "AttachmentMigration": true,
      "AttachmentWorkingPath": "c:\temp\WorkItemAttachmentWorkingFolder\",
      "FixHtmlAttachmentLinks": false,
      "SkipToFinalRevisedWorkItemType": false,
      "WorkItemCreateRetryLimit": 5,
      "FilterWorkItemsThatAlreadyExistInTarget": false,
      "PauseAfterEachWorkItem": false,
      "AttachmentMazSize": 480000000,
      "CollapseRevisions": false
    },
    {
      "ObjectType": "VstsSyncMigrator.Engine.Configuration.Processing.WorkItemQueryMigrationConfig",
      "Enabled": true
    }
  ]
}

 

工具不更新内联 links。

这是一个实施问题,因为我们通过遍历所有现有工作项进行迁移。对于集成 links,我们只需将 links 添加到目标中存在的工作项,一旦添加其他项,它将从两端添加。

例如,如果我们要迁移 1、2、3 和 1、2 引用 3,则:

  1. #1 已迁移且未添加 link,因为 #3 不存在
  2. #2 已迁移且未添加 link,因为 #3 不存在
  3. #3 已迁移,并且 link 添加到 #1 和 #2

在添加 #3 和创建 links 时,无法知道哪些工作项内联 links 到任何其他工作项。


修复思路

好的,这就是该工具当前的工作方式,所以我正在想办法解决这个问题。 Ther 可能是一个选项“RefactorInlineLinks”,它解析它遇到的任何描述并修复 link 如果它在迁移范围内。

然而,这只会在迁移完成后作为第二遍起作用,并且所有将存在的工作项都存在。