如何迁移指向新项目工作项的其他工作项的内联链接
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 已迁移且未添加 link,因为 #3 不存在
- #2 已迁移且未添加 link,因为 #3 不存在
- #3 已迁移,并且 link 添加到 #1 和 #2
在添加 #3 和创建 links 时,无法知道哪些工作项内联 links 到任何其他工作项。
修复思路
好的,这就是该工具当前的工作方式,所以我正在想办法解决这个问题。 Ther 可能是一个选项“RefactorInlineLinks”,它解析它遇到的任何描述并修复 link 如果它在迁移范围内。
然而,这只会在迁移完成后作为第二遍起作用,并且所有将存在的工作项都存在。
我已将 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 已迁移且未添加 link,因为 #3 不存在
- #2 已迁移且未添加 link,因为 #3 不存在
- #3 已迁移,并且 link 添加到 #1 和 #2
在添加 #3 和创建 links 时,无法知道哪些工作项内联 links 到任何其他工作项。
修复思路
好的,这就是该工具当前的工作方式,所以我正在想办法解决这个问题。 Ther 可能是一个选项“RefactorInlineLinks”,它解析它遇到的任何描述并修复 link 如果它在迁移范围内。
然而,这只会在迁移完成后作为第二遍起作用,并且所有将存在的工作项都存在。