Протестируйте слияние полей с помощью инструментов Azure Devops Migration, я также мог воспроизвести эту ситуацию. Поле doneMatch
обязательно в файле configuration.json
(по умолчанию ## Done ##).
Кажется, нет способа избежать добавления donematch
в целевое поле. Поскольку я не являюсь разработчиком этого инструмента, я не уверен в функциях этого поля.
Я хотел бы поделиться обходным путем для решения этой проблемы.
Временное решение:
Вы можете попробовать установить " "
в поле doneMatch
. ("doneMatch": " "
)
Например:
"FieldMaps": [
{
"ObjectType": "VstsSyncMigrator.Engine.Configuration.FieldMap.FieldMergeMapConfig",
"WorkItemTypeName": "*",
"sourceField1": "System.Description",
"sourceField2": "Microsoft.VSTS.Common.AcceptanceCriteria",
"targetField": "System.Description",
"formatExpression": "{0} {1}",
"doneMatch": " "
}
Поскольку файл конфигурации представляет собой файл Json, вы можете использовать " "
для обозначения пробелов.
Результат:
введите описание изображения здесь
будет ли он обнаруживать предыдущий ## DONE ## в target.fieldA и думать, что уже выполнил слияние, поэтому не будет вносить никаких новых изменений
Согласно моему тесту, ##Done##
в целевом поле не повлияет на другие операции. Вы по-прежнему можете работать с этим полем.
Обновление:
Вышеупомянутый метод может работать только с типом поля: Text (multiple lines)
. Если поле другого типа, этот метод не работает.
Вы можете создать новое поле (Text (multiple lines)
). Затем вы можете установить целевое поле как новое поле.
например,
"FieldMaps": [
{
"ObjectType": "VstsSyncMigrator.Engine.Configuration.FieldMap.FieldMergeMapConfig",
"WorkItemTypeName": "*",
"sourceField1": "Custom.test1",
"sourceField2": "Custom.test2",
"targetField": "Custom.test3",
"formatExpression": "{0} {1}",
"doneMatch": " "
}