簡體   English   中英

從遠程TFS 2015到Azure Devops(私有雲)的遷移

[英]Remote TFS 2015 to Azure Devops (private cloud) Migration

我當前的組織要求將源代碼+歷史鏈接從位於遠程站點的供應商TFS 2015遷移到我們的Azure Devops(Repos)。 我面臨的挑戰是,由於源TFS位於遠程站點中,並且未通過我們的AD連接​​,因此找不到鏈接它的方法。 當前,我們正在使用顯式登錄名登錄其tfs並獲取代碼。 是否有任何可能的方法來遷移它們,並每天進行同步,持續幾個月,並拔掉對遠程的依賴關系。

任何幫助將非常感激..

不確定您提到的Azure DevOps(Repos)是Azure DevOps Service(VSTS之前的版本)還是Azure DevOps Server 2019(TFS之前的版本)在您的情況下,您似乎只想在TFS2015與Azure DevOps服務或Azure DevOps之間執行源代碼同步服務器。

對於Azure DevOps Service:當您決定從Azure DevOps Server遷移到Azure DevOps Services時,有許多方法可以做到這一點,這些方法在數據傳輸的保真度和過程的復雜性上都各不相同。

  • 選項1:手動復制最重要的資產
  • 選項2:高保真數據庫遷移
  • 選項3:使用基於公共API的工具進行更高保真度的遷移

在遷移過程中,只有option2將包括源代碼管理歷史記錄。 但是它也有一些限制,例如導入工具支持的版本。 當前僅支持導入以下版本的Azure DevOps Server:Azure DevOps Server 2019和Azure DevOps Server 2019.0.1

在您的方案中,您可以在TFS2015中使用CI構建來自動同步Azure DevOps存儲庫。 這里最大的挑戰是TFS和Azure DevOps Service的身份驗證。 就像您提到的那樣,使用顯式登錄名和powershell腳本應該可以完成工作。

供您參考的樣本:

1.在TFS 2015中創建CI構建

在托管git repo的TFS 2015項目中->使用TFS 2015 git repo作為存儲庫創建構建定義->啟用包含所有分支的CI。

在此處輸入圖片說明

2.添加一個PowerShell任務,以將TFS2015 git repo同步到Azure DevOps Service。使用以下腳本在構建定義中添加一個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在Azure DevOps Service git repo URL中進行身份驗證。 您只需要替換URL https://Personal%20Access%20Token:{PAT}@marinaliu.visualstudio.com/{project}/_git/{repo}的真實PAT,帳戶名, https://Personal%20Access%20Token:{PAT}@marinaliu.visualstudio.com/{project}/_git/{repo}

保存構建定義,現在在TFS 2015 git repo中更新任何分支時,將自動為相應分支同步VSTS git repo。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM