【发布时间】:2020-11-02 17:55:21
【问题描述】:
我们需要您的帮助才能将链接迁移到其他组织。我们使用的是 azure DevOps 迁移工具 11.6 版。
我们使用此工具运行了完整迁移,似乎工作项已正确迁移,但链接正在跳过迁移。
这里是我们需要迁移的东西。
像图片一样的附件 关联父子关系的相关链接 我的模板是(源)IP CMMI 和(目标)Scrum。运行迁移时出现以下错误。请帮我解决这个问题。
我们在https://github.com/nkdAgility/azure-devops-migration-tools/issues/662提出问题
我们收到了这个错误: 迁移类型为 RelatedLink [SKIP] 的 36597 的链接无法迁移类型为 System.LinkTypes.Hierarchy-Reverse 的链接的链接,其中 wiSourceL=36597,wiSourceR=36591,wiTargetL=6222,wiTargetR=36591 作为目标 WI 尚未迁移 GitRepositoryEnricher:丰富 6222 修复 Git Repo 链接
配置文件:
{
"ChangeSetMappingFile": null,
"Source": {
"ObjectType": "TfsTeamProjectConfig",
"Collection": "https://dev.azure.com/Prashantshivhare01/",
"Project": "TestMigration",
"ReflectedWorkItemIDFieldName": "Custom.ReflectedWorkItemId",
"AllowCrossProjectLinking": false,
"PersonalAccessToken": "",
"LanguageMaps": {
"AreaPath": "Area",
"IterationPath": "Iteration"
}
},
"Target": {
"ObjectType": "TfsTeamProjectConfig",
"Collection": "https://dev.azure.com/dest01",
"Project": "Test Migration",
"ReflectedWorkItemIDFieldName": "Custom.ReflectedWorkItemId",
"AllowCrossProjectLinking": false,
"PersonalAccessToken": "",
"LanguageMaps": {
"AreaPath": "Area",
"IterationPath": "Iteration"
}
},
"FieldMaps": [
{
"ObjectType": "MultiValueConditionalMapConfig",
"WorkItemTypeName": "",
"sourceFieldsAndValues": {
"Field1": "Value1",
"Field2": "Value2"
},
"targetFieldsAndValues": {
"Field1": "Value1",
"Field2": "Value2"
}
},
{
"ObjectType": "FieldBlankMapConfig",
"WorkItemTypeName": "",
"targetField": "TfsMigrationTool.ReflectedWorkItemId"
},
{
"ObjectType": "FieldValueMapConfig",
"WorkItemTypeName": "",
"sourceField": "System.State",
"targetField": "System.State",
"defaultValue": "New",
"valueMapping": {
"Approved": "New",
"New": "New",
"Committed": "Active",
"In Progress": "Active",
"To Do": "New",
"Done": "Closed",
"Removed": "Removed"
}
},
{
"ObjectType": "FieldtoFieldMapConfig",
"WorkItemTypeName": "",
"sourceField": "Microsoft.VSTS.Common.BacklogPriority",
"targetField": "Microsoft.VSTS.Common.StackRank",
"defaultValue": null
},
{
"ObjectType": "FieldtoFieldMultiMapConfig",
"WorkItemTypeName": "",
"SourceToTargetMappings": {
"SourceField1": "TargetField1",
"SourceField2": "TargetField2"
}
},
{
"ObjectType": "FieldtoTagMapConfig",
"WorkItemTypeName": "",
"sourceField": "System.State",
"formatExpression": "ScrumState:{0}"
},
{
"ObjectType": "FieldMergeMapConfig",
"WorkItemTypeName": "",
"sourceField1": "System.Description",
"sourceField2": "Microsoft.VSTS.Common.AcceptanceCriteria",
"targetField": "System.Description",
"formatExpression": "{0}
Acceptance Criteria
{1}",
"doneMatch": "##DONE##"
},
{
"ObjectType": "RegexFieldMapConfig",
"WorkItemTypeName": "",
"sourceField": "COMPANY.PRODUCT.Release",
"targetField": "COMPANY.DEVISION.MinorReleaseVersion",
"pattern": "PRODUCT \d{4}.(\d{1})",
"replacement": "$1"
},
{
"ObjectType": "FieldValuetoTagMapConfig",
"WorkItemTypeName": "",
"sourceField": "Microsoft.VSTS.CMMI.Blocked",
"pattern": "Yes",
"formatExpression": "{0}"
},
{
"ObjectType": "TreeToTagMapConfig",
"WorkItemTypeName": "",
"toSkip": 3,
"timeTravel": 1
}
],
"GitRepoMapping": null,
"LogLevel": "Information",
"Processors": [
{
"ObjectType": "WorkItemMigrationConfig",
"ReplayRevisions": true,
"PrefixProjectToNodes": false,
"UpdateCreatedDate": true,
"UpdateCreatedBy": true,
"BuildFieldTable": false,
"AppendMigrationToolSignatureFooter": false,
"WIQLQueryBit": "AND [Microsoft.VSTS.Common.ClosedDate] = '' AND [System.WorkItemType] IN ('Test Suite', 'Test Plan')",
"WIQLOrderBit": "[System.ChangedDate] desc",
"Enabled": true,
"LinkMigration": true,
"AttachmentMigration": true,
"AttachmentWorkingPath": "c:\temp\WorkItemAttachmentWorkingFolder\",
"FixHtmlAttachmentLinks": false,
"SkipToFinalRevisedWorkItemType": true,
"WorkItemCreateRetryLimit": 5,
"FilterWorkItemsThatAlreadyExistInTarget": true,
"PauseAfterEachWorkItem": true,
"AttachmentMaxSize": 480000000,
"CollapseRevisions": false,
"LinkMigrationSaveEachAsAdded": false,
"GenerateMigrationComment": true,
"NodeBasePaths": [
"Product\Area\Path1",
"Product\Area\Path2"
],
"WorkItemIDs": null
}
],
"Version": "11.6",
"workaroundForQuerySOAPBugEnabled": false,
"WorkItemTypeDefinition": {
"sourceWorkItemTypeName": "targetWorkItemTypeName",
"Bug" : "Bug",
"Requirement" : "Product Backlog Item",
"Epic" : "Epic",
"Task" : "Task",
"Feature" : "Feature",
"Test Case" : "Test Case"
}
}
【问题讨论】:
-
嗨@Prashant shivhare,我们需要确保两个项目都遵循 Azure DevOps 组织中的相同流程。您也可以参考这个ticket将工作项迁移到另一个组织,我已经尝试过了,它有效,请尝试,然后在这里分享结果。
-
嗨@VitoLiu-MSFT,我的来源是CMMI,目标是scrum。现在我已经成功迁移了 Bug、Task、Epic、Feature、Requirement、Test Case 等工作项,但我无法迁移父子关系等相关工作。您能帮帮我吗?
-
嗨@Prashant shivhare,很抱歉这么晚才回复你。我已经添加了答案并分享了一个解决方法,请尝试一下,然后在这里分享结果。谢谢。
-
嗨@Prashant shivhare,这个问题怎么样?下面的答案是否解决了您的问题?如果没有,请告诉我有关此问题的最新信息吗?
-
嗨@VitoLiu-MSFT 首先非常感谢您的回复。我已经成功地将工作项从 CMMI 迁移到带有链接的 SCRUM。我从你的帖子中得到了关于如何做所有事情的想法。
标签: azure-devops azure-devops-migration-tools tfs-to-tfs-migration-tool