使用Azure DevOps服务,我们拆分了我们的主要项目,并移动了~1500 WorkItems/PBIs/Feature/.一个新的项目。
我们写了一个板->查询,选择了所有的,并将它们移到新的项目中。
通过这样做,重置了WorkItems的所有状态(ActivatedBy、ActivatedDate、State、Board列)。通过查看修订选项卡,我们可以看到旧的状态。
是否有一种方法或工具来恢复或撤消该移动所做的更改?
发布于 2021-02-04 16:29:43
当将工作项移动到新项目创建工作项的新版本时。
在项目之间移动更加复杂,因为无法保证使用相同的流程,这意味着即使您移动到相同的类型,字段也可能会丢失/添加或应用其他规则。因此,Azure DevOps会自动将状态字段和原因字段重置为您移动的工作项类型的默认值。
您需要做的是遍历所有已移动的工作项,并将字段还原为上一版本的值。这可以手工完成,但是通过Rest (或Azure )实现1500个工作项的自动化可能是更好的选择:
asOf
/--as-of
参数,该参数允许您从给定日期检索工作项修订。将此设置为在您从原始项目开始移动之前。(Rest,Azure CLI)使用Azure可能要简单一些,但是REST提供了像批量检索工作项和批量更新工作项这样的功能来优化流程,但是只为1500个应该无关紧要的项目提供了功能。
发布于 2021-02-05 08:12:00
恢复已更改的字段没有简单的方法。
如果您计划使用rest来还原已更改的字段。您可以在rest下面使用。
1,您可以使用Wiql -- Wiql查询 rest来获取danielorn提到的所有工作项。请参见例如,这个线程如何编写调用wiql的脚本。
2、在你得到所有的工作项目之后。您可以通过rev
字段获得它们当前的转速。然后,您可以通过当前的修订-获取rest在以前的版本中使用rev - 1
获取它们的原始字段值。
3、yo可以使用更新rest来恢复工作项。
但是,通过使用Azure DevOps迁移工具迁移您的工作项,有一个更简单的解决方案。
首先,可以删除从主项目转移到新项目的所有工作项。
然后,您可以使用Azure DevOps迁移工具重新迁移工作项。请仔细查看文档,以学习如何使用此工具。见下面的例子:
1,创建自定义迁移跟踪字段
在使用迁移工具之前。您需要为新项目中的工作项类型创建自定义迁移跟踪字段。此字段将用于跟踪主项目中的原始工作项。请参阅项目过程中的在这里添加自定义字段。
然后,您可以设置自定义跟踪字段(即。( ReflectedWorkItemId2
)在configraton.json中,如下所示:
在迁移完成之后。您将看到在自定义字段中设置了原始工作项url:
2、映射字段和值(例如。区域路径,迭代路径)在FieldMaps部分。见下面的例子。
{
"$type": "MultiValueConditionalMapConfig",
"WorkItemTypeName": "*",
"sourceFieldsAndValues": {
"System.AreaPath": "MainProject\\Development Team"
},
"targetFieldsAndValues": {
"System.AreaPath": "NewProject"
}
},
{
"$type": "FieldValueMapConfig",
"WorkItemTypeName": "*",
"sourceField": "System.IterationPath",
"targetField": "System.IterationPath",
"defaultValue": "TestProjectAccess",
"valueMapping": {
"MainProject\\iteration 3": "NewProject\\Iteration 3",
"MainProject\\iteration 5": "NewProject\\Iteration 2"
}
}
3,绘制州图
{
"$type": "FieldValueMapConfig",
"WorkItemTypeName": "*",
"sourceField": "System.State",
"targetField": "System.State",
"defaultValue": "New",
"valueMapping": {
"Approved": "New",
"New": "New",
"Developing": "Active",
"To Do": "New",
"Done": "Closed",
"Removed": "Removed"
}
},
4 .您可以在WIQLQueryBit
处理器中的WorkItemMigrationConfig
字段中迁移所需的工作项。
"Processors": [
{
"$type": "WorkItemMigrationConfig",
"Enabled": true,
....
"AppendMigrationToolSignatureFooter": false,
"WIQLQueryBit": "AND [System.Id] IN (5,9)",
"WIQLOrderBit": "[System.ChangedDate] desc",
...
}
]
https://stackoverflow.com/questions/66048969
复制相似问题