我们已经在 https:/dev.azure.com。现在我的经理想要定期备份这个仓库的副本。我向经理解释说 https:/dev.azure.com。 是由MS管理的SAAS,所以repo永远是安全的.但他想要一个自己的副本。
我想了几个选择:a)在任何开发者机器上获得最新的,并采取备份到磁带设备b)使用Azure DevOps的一些信息,以保持备份在Azure存储。
方案b的可行性如何?
对Azure DevOps进行备份,是否可以备份过去所有的签到历史?
Azure DevOps上有什么备份服务可以和Azure Storage链接吗?
在Azure DevOps上使用一些xyz服务可以进行增量备份吗?
选项b的可行性如何?
在Azure Devops服务中是可行的。你需要的是一个 Yaml管道 其中 触发所有分支.
您可以使用 命令行任务 来备份回购到 {RepoName}.git
文件夹,然后将此文件夹复制到Azure存储中,使用 Azure文件复制任务. 类似这样的:
trigger:
branches:
include:
- '*'
pool:
vmImage: 'windows-latest'
steps:
- task: CmdLine@2
inputs:
script: 'git clone --mirror https://{Your PAT}@dev.azure.com/{OrgName}/{ProjectName}/_git/{RepoName}'
- task: ArchiveFiles@2
inputs:
rootFolderOrFile: '$(System.DefaultWorkingDirectory)/{RepoName}.git'
includeRootFolder: true
archiveType: 'zip'
archiveFile: '$(Build.ArtifactStagingDirectory)/Backup.zip'
replaceExistingArchive: true
- task: AzureFileCopy@4
displayName: 'AzureBlob File Copy'
inputs:
SourcePath: '$(Build.ArtifactStagingDirectory)/Backup.zip'
azureSubscription: xxxx
Destination: AzureBlob
storage: xxxxxxxx
ContainerName: arm
BlobPrefix: test
详细介绍。
1.CI Trigger with wildcard(*)可以监控你所有的分支。因此,如果你的repo有任何更新,管道将被触发运行。
2.cmd任务调用 git clone --mirror 来复制你的Git repo。要在cmd任务中用PAT复制Azure Git repo,可以按照以下格式进行 此处:
git clone https://{yourPAT}@dev.azure.com/yourOrgName/yourProjectName/_git/yourRepoName
该命令将创建一个 RepoName.git
文件夹,其中包含您的 repo 的副本在此路径中。$(System.DefaultWorkingDirectory)
. 到 创立PAT你只需要创建一个具有Code-read访问范围的。
3.逻辑是: 如果你的源码仓库有任何变化=>管道将被触发=>在DefaultWorkingDirectory(CMD任务)中制作一个最新的副本=>将这个副本归档到数据库中。Backup.zip
文件(归档文件任务=>Azure文件复制任务将复制这个。Backup.zip
到Azure存储 blobs)