Не уверен, что упомянутый вами Azure DevOps (Repos) - это служба Azure DevOps (предыдущая версия VSTS) или Azure DevOps Server 2019 (предыдущая версия TFS). В вашем случае, похоже, вы просто хотите выполнить синхронизацию исходного кода между TFS2015 и службой Azure DevOps или Azure DevOps. сервер.
Для службы Azure DevOps: когда вы решите перейти с сервера Azure DevOps Server на службы Azure DevOps, есть множество подходов к этому, которые различаются как по точности передачи данных, так и по сложности процесса.
- Вариант 1. Скопируйте наиболее важные активы вручную
- Вариант 2: миграция базы данных с высокой точностью
- Вариант 3. Использование общедоступных инструментов на основе API для более точной миграции
Только вариант 2 будет включать историю управления версиями во время миграции. Но у него также есть некоторые ограничения, такие как версия, поддерживаемая инструментом импорта. В настоящее время для импорта поддерживаются только следующие версии Azure DevOps Server: Azure DevOps Server 2019 и Azure DevOps Server 2019.0.1.
В вашем сценарии вы можете использовать сборку CI в TFS2015 для автоматической синхронизации репозитория Azure DevOps. И самая большая проблема здесь - это аутентификация как для TFS, так и для службы Azure DevOps. Так же, как вы упомянули, использование явных логинов и сценария PowerShell должно работать.
Образец для справки:
1. Создайте сборку CI в TFS 2015.
В вашем проекте TFS 2015, где размещено репозиторий git - ›создать определение сборки с репозиторием TFS 2015 git в качестве репозитория -› включить CI со всеми включенными ветвями.
2. Добавьте задачу PowerShell для синхронизации репозитория Git TFS2015 со службой Azure DevOps. Добавьте задачу PowerShell в определение сборки с помощью следующего сценария:
if ( $(git remote) -contains 'vsts' )
{
git remote rm vsts 2>&1|Write-Host
echo 'VSTS Account removed'
}
git remote add vsts https://Personal%20Access%20Token:{PAT}@{account}.visualstudio.com/{project}/_git/{repo}
git checkout ${env:BUILD_SOURCEBRANCHNAME} 2>&1|Write-Host
git reset --hard origin/master 2>&1|Write-Host
echo 'update local branch with remote successfully'
git push vsts ${env:BUILD_SOURCEBRANCHNAME} -f 2>&1|Write-Host
Примечание. пульт vsts должен быть добавлен с учетными данными. И он использует PAT для аутентификации в URL-адресе репозитория git службы Azure DevOps. И вам просто нужно заменить реальный PAT, имя учетной записи, имя проекта и имя ответа в URL https://Personal%20Access%20Token:{PAT}@marinaliu.visualstudio.com/{project}/_git/{repo}
.
Сохраните определение сборки, и теперь, когда какие-либо ветки обновляются в репозитории Git TFS 2015, репозиторий git VSTS будет автоматически синхронизироваться для соответствующих веток.
person
PatrickLu-MSFT
schedule
27.08.2019