【问题标题】:Backlogs and Links not completely migrating未完全迁移的积压和链接
【发布时间】:2021-05-23 16:57:38
【问题描述】:

晚上好,

我一直在使用测试环境来准备迁移以正确配置。目前我一直无法让源和目标之间的积压工作正确匹配。如果我查看源代码,我会在积压工作中看到 19 个用户故事、42 个错误和 89 个任务。迁移到测试环境后,我在 backlog 中有 36 个错误。 此外,如果我查看各种工作项,我并没有看到所有链接都已迁移。现在,在最后一次运行之后,我在日志中有很多行如下所示:

[SKIP] Already Exists a Link of type System.LinkTypes.Hierarchy-Reverse where wiSourceL=162, wiSourceR=156, wiTargetL=161, wiTargetR=155

我也有好几行看起来像:

[SKIP] Unable to migrate link where Link of type System.LinkTypes.Hierarchy-Reverse where wiSourceL=53, wiSourceR=48, wiTargetL=53, wiTargetR=48 as target WI has not been migrated

但我知道目标工作项存在。通过在每次运行期间交换我正在运行的处理器,我在此配置上总共运行了 5 次。最后两次运行是我最后的 WorkItemMigrationConfig。有人看到我错过了什么吗?

配置.json

{
  "ChangeSetMappingFile": null,
  "Source": {
    "$type": "TfsTeamProjectConfig",
    "Collection": "https://source.fdqn/Depreciated%20-%20MRM2%20Web%20App%20Development%20Team",
    "Project": "ProjectName",
    "ReflectedWorkItemIDFieldName": "TfsMigrationTool.ReflectedWorkItemId",
    "AllowCrossProjectLinking": false,
    "AuthenticationMode": "Prompt",
    "PersonalAccessToken": "",
    "LanguageMaps": {
      "AreaPath": "Area",
      "IterationPath": "Iteration"
    }
  },
  "Target": {
    "$type": "TfsTeamProjectConfig",
    "Collection": "https://target.fdqn/TestWeb",
    "Project": "ProjectName",
    "ReflectedWorkItemIDFieldName": "Custom.ReflectedWorkItemId",
    "AllowCrossProjectLinking": false,
    "AuthenticationMode": "Prompt",
    "PersonalAccessToken": "",
    "LanguageMaps": {
      "AreaPath": "Area",
      "IterationPath": "Iteration"
    }
  },
  "FieldMaps": [
    {
      "$type": "MultiValueConditionalMapConfig",
      "WorkItemTypeName": "*",
      "sourceFieldsAndValues": {
        "Field1": "Value1",
        "Field2": "Value2"
      },
      "targetFieldsAndValues": {
        "Field1": "Value1",
        "Field2": "Value2"
      }
    },
    {
      "$type": "FieldtoFieldMapConfig",
      "WorkItemTypeName": "*",
      "sourceField": "Microsoft.VSTS.Common.BacklogPriority",
      "targetField": "Microsoft.VSTS.Common.StackRank",
      "defaultValue": null
    },
    {
      "$type": "FieldtoFieldMultiMapConfig",
      "WorkItemTypeName": "*",
      "SourceToTargetMappings": {
        "SourceField1": "TargetField1",
        "SourceField2": "TargetField2"
      }
    },
    {
      "$type": "FieldValuetoTagMapConfig",
      "WorkItemTypeName": "*",
      "sourceField": "Microsoft.VSTS.CMMI.Blocked",
      "pattern": "Yes",
      "formatExpression": "{0}"
    },
  ],
  "GitRepoMapping": null,
  "LogLevel": "Information",
  "Processors": [
    {
      "$type": "WorkItemMigrationConfig",
      "Enabled": false,
      "ReplayRevisions": true,
      "PrefixProjectToNodes": false,
      "UpdateCreatedDate": true,
      "UpdateCreatedBy": true,
      "BuildFieldTable": false,
      "AppendMigrationToolSignatureFooter": false,
      "WIQLQueryBit": "AND [System.WorkItemType] NOT IN ('Test Suite', 'Test Plan') AND [System.Id] < 30",
      "WIQLOrderBit": "[System.Id] asc, [System.ChangedDate] desc",
      "LinkMigration": false,
      "AttachmentMigration": true,
      "AttachmentWorkingPath": "c:\\temp\\WorkItemAttachmentWorkingFolder\\",
      "FixHtmlAttachmentLinks": false,
      "SkipToFinalRevisedWorkItemType": true,
      "WorkItemCreateRetryLimit": 5,
      "FilterWorkItemsThatAlreadyExistInTarget": true,
      "PauseAfterEachWorkItem": false,
      "AttachmentMaxSize": 480000000,
      "CollapseRevisions": false,
      "LinkMigrationSaveEachAsAdded": false,
      "GenerateMigrationComment": false,
      "NodeBasePaths": [],
      "WorkItemIDs": null
    },
    {
        "$type": "TestConfigurationsMigrationConfig",
        "Enabled": false
    },
    {
        "$type": "TestPlansAndSuitesMigrationConfig",
        "Enabled": false
    },
    {
      "$type": "WorkItemMigrationConfig",
      "Enabled": false,
      "ReplayRevisions": true,
      "PrefixProjectToNodes": false,
      "UpdateCreatedDate": true,
      "UpdateCreatedBy": true,
      "BuildFieldTable": false,
      "AppendMigrationToolSignatureFooter": false,
      "WIQLQueryBit": "AND [System.WorkItemType] NOT IN ('Test Plan') AND [System.Id] > 33 AND [System.Id] < 60 ",
      "WIQLOrderBit": "[System.Id] asc, [System.ChangedDate] desc",
      "LinkMigration": false,
      "AttachmentMigration": true,
      "AttachmentWorkingPath": "c:\\temp\\WorkItemAttachmentWorkingFolder\\",
      "FixHtmlAttachmentLinks": false,
      "SkipToFinalRevisedWorkItemType": true,
      "WorkItemCreateRetryLimit": 5,
      "FilterWorkItemsThatAlreadyExistInTarget": true,
      "PauseAfterEachWorkItem": false,
      "AttachmentMaxSize": 480000000,
      "CollapseRevisions": false,
      "LinkMigrationSaveEachAsAdded": false,
      "GenerateMigrationComment": false,
      "NodeBasePaths": [],
      "WorkItemIDs": null
    },  
    {
        "$type": "TestConfigurationsMigrationConfig",
        "Enabled": false
    },
    {
        "$type": "TestPlansAndSuitesMigrationConfig",
        "Enabled": false
    },
    {
      "$type": "WorkItemMigrationConfig",
      "Enabled": false,
      "ReplayRevisions": true,
      "PrefixProjectToNodes": false,
      "UpdateCreatedDate": true,
      "UpdateCreatedBy": true,
      "BuildFieldTable": false,
      "AppendMigrationToolSignatureFooter": false,
      "WIQLQueryBit": "AND [System.WorkItemType] NOT IN ('Test Plan') AND [System.Id] > 59",
      "WIQLOrderBit": "[System.Id] asc, [System.ChangedDate] desc",
      "LinkMigration": false,
      "AttachmentMigration": true,
      "AttachmentWorkingPath": "c:\\temp\\WorkItemAttachmentWorkingFolder\\",
      "FixHtmlAttachmentLinks": false,
      "SkipToFinalRevisedWorkItemType": true,
      "WorkItemCreateRetryLimit": 5,
      "FilterWorkItemsThatAlreadyExistInTarget": true,
      "PauseAfterEachWorkItem": false,
      "AttachmentMaxSize": 480000000,
      "CollapseRevisions": false,
      "LinkMigrationSaveEachAsAdded": false,
      "GenerateMigrationComment": false,
      "NodeBasePaths": [],
      "WorkItemIDs": null
    },
    {
      "$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')",
      "WIQLOrderBit": "[System.ChangedDate] desc",
      "LinkMigration": true,
      "AttachmentMigration": true,
      "AttachmentWorkingPath": "c:\\temp\\WorkItemAttachmentWorkingFolder\\",
      "FixHtmlAttachmentLinks": false,
      "SkipToFinalRevisedWorkItemType": true,
      "WorkItemCreateRetryLimit": 5,
      "FilterWorkItemsThatAlreadyExistInTarget": false,
      "PauseAfterEachWorkItem": false,
      "AttachmentMaxSize": 480000000,
      "CollapseRevisions": false,
      "LinkMigrationSaveEachAsAdded": false,
      "GenerateMigrationComment": false,
      "NodeBasePaths": [],
      "WorkItemIDs": null
    }
  ],
  "Version": "11.9",
  "workaroundForQuerySOAPBugEnabled": false,
  "WorkItemTypeDefinition": {    
    "Code Review Request": "Task",
    "Code Review Response": "Task",
    "Feedback Request": "Task",
    "Feedback Response": "Task",
    "sourceWorkItemTypeName": "targetWorkItemTypeName"
  },
  "Endpoints": {
    "InMemoryWorkItemEndpoints": [
      {
        "Name": "Source",
        "EndpointEnrichers": null
      },
      {
        "Name": "Target",
        "EndpointEnrichers": null
      }
    ]
  }
}

【问题讨论】:

    标签: azure-devops-migration-tools


    【解决方案1】:

    工具跳过链接是完全正常的。它一次迁移一个工作项,如果链接的工作项尚不存在,那么它将跳过该链接。

    当它点击链接的另一端时,它会添加一个链接回到之前迁移的项目。

    在日志中,您将确切看到在迁移过程中加载了多少工作项。

    【讨论】:

      猜你喜欢
      • 2010-09-07
      • 2018-12-18
      • 2019-03-31
      • 1970-01-01
      • 2013-10-13
      • 2015-09-06
      • 1970-01-01
      • 2023-03-16
      • 2019-07-25
      相关资源
      最近更新 更多