Во время миграции ссылки фиксации: "Исправлено", "Удалено", но не "Добавлено"
Когда я запускаю миграцию в azure-DevOps-migration-tools, есть Исправление, Удаление ссылок фиксации, но не Добавление.
В результате ссылки фиксации не переносятся. Однако он не воспроизводится в каждом проекте - в большинстве проектов это работает нормально, а также добавляются коммиты. Например:
Мой WorkItemMigrationConfig:
{
"ObjectType": "VstsSyncMigrator.Engine.Configuration.Processing.WorkItemMigrationConfig",
"ReplayRevisions": true,
"PrefixProjectToNodes": false,
"UpdateCreatedDate": true,
"UpdateCreatedBy": true,
"UpdateSourceReflectedId": false,
"BuildFieldTable": false,
"AppendMigrationToolSignatureFooter": false,
"QueryBit": "AND [System.ID] = 41128",
"OrderBit": "[System.ChangedDate] desc",
"Enabled": true,
"LinkMigration": true,
"AttachmentMigration": true,
"AttachmentWorkingPath": "c:\\temp\\WorkItemAttachmentWorkingFolder\\",
"FixHtmlAttachmentLinks": false,
"SkipToFinalRevisedWorkItemType": false,
"WorkItemCreateRetryLimit": 5,
"FilterWorkItemsThatAlreadyExistInTarget": true,
"PauseAfterEachWorkItem": false,
"AttachmentMazSize": 480000000,
"CollapseRevisions": false
}
Я подозреваю, что это может быть связано с конкретным проектом, но в настоящее время я понятия не имею, в чем проблема. В чем может быть причина этого?
//редактировать
После некоторого исследования исходного кода инструмента я обнаружил, что ссылки фиксации добавляются только в том случае, если URI ссылок фиксации отличаются (https://github.com/nkdAgility/azure-devops-migration-tools/blob/9ef6ee4fd863de30d8a2179450bc86cb5cfafeb5/src/VstsSyncMigrator.Core/Execution/OMatics/RepoOMatic.cs) В моем случае эти ссылки совпадают, потому что идентификаторы проектов TFS / AzureDevops совпадают, поскольку целевой проект является результатом клонирования коллекции исходного проекта.
1 ответ
Для того, чтобы это работало, репозиторий Git должен быть сначала в целевой! Если вы изменили имя репозитория Git, вы должны добавить его в сопоставление.
FixGitCommitLinks - позволяет исправить перенесенные хуки фиксации Git (и, следовательно, внешние ссылки), чтобы они указывали на новый репозиторий в целевом проекте. Если имена исходного и целевого репозитория совпадают, это сработает из коробки. Если у целевого репозитория другое имя, вы можете указать это имя через свойство TargetRepository.
https://nkdagility.github.io/azure-devops-migration-tools/
Это немного устарело, вам нужно использовать "GitRepoMapping", аналогичный элементу "WorkItemTypeDefinition" в yaml, который отображает все старые имена на новые имена. Опять же, это необходимо только тогда, когда вы используете другое имя из источника.