You can use the Commvault software to back up and restore Azure repositories.
Backups
Data You Can Back Up
|
Service |
Component |
Considerations |
|---|---|---|
|
Project Metadata (not a service) *repositories inherit project settings |
Project information |
The following are backed up irrespective of the service selected: Project visibility (public repository, private repository) Project description |
|
Summary |
||
|
Dashboards |
Dashboards are backed up only if the content is defined at or above the project level. Restorable only if you select at the project level or higher. |
|
|
Wiki |
Wikis are backed up only if the content is selected at the project level or at the organization level. Comments are backed up. |
|
|
Boards |
Work items |
Restorable only if you select at the project level or higher. |
|
Boards |
Auto-populated based on the work items present in the project. |
|
|
Backlogs |
Auto-populated based on the work items present in the project. |
|
|
Sprints (iterations and areas) |
||
|
Queries |
||
|
Delivery Plans |
||
|
Repos |
Azure repositories |
Azure repositories that are not part of the same project are not backed up. TFVC (Team Foundation Version Control) repositories are not backed up. Git LFS objects in repositories pointing to a different LFS server (rather than the Git server) will not be backed up. |
|
Pull request |
The following are backed up:
|
|
|
Pipelines |
Pipelines |
YAML build pipelines and classic release pipelines are protected. Classic build pipelines are not supported. |
|
Environments |
||
|
Releases |
||
|
Library (including variable groups) |
||
|
Task groups |
||
|
Deployment groups |
||
|
Test Plans |
Test plans |
|
|
Parameters |
Parameter set is considered as a work item and will be part of the Boards service backup and restores. |
|
|
Configurations |
||
|
Artifacts |
Feed data and feed metadata are backed up. |
Data You Cannot Back Up
|
Service |
Component |
Considerations |
|---|---|---|
|
Project Metadata |
Summary |
About sections must be added manually after the restore. |
|
Configurations |
Service connections, Service Hooks Subscriptions, and Brand policies are not supported. |
|
|
Dashboards |
Dashboards are not backed up if the project scope is not found in the API response for backup. If the Dashboard is present at the destination, restore operation does not restore the Dashboard. |
|
|
Wiki |
Comment reactions are not supported. Code wikis must be published manually at the destination. NonConformant wikis are not supported. |
|
|
Boards |
Work items |
The following are not supported:
In-place restores update work items only if ID and title match; otherwise, new work items are created. Updates exclude comment deletion and area path changes. Out-of-place restores preserve area/iteration paths with destination project name as root. |
|
Sprints |
Users are not restored if they are not part of the organization and if their user ID does not match. |
|
|
Work item Attachments |
Work item Attachments are not included in the backup process. |
|
|
Queries |
If a query creation fails (because the iteration path does not exist at the destination), then the restore operation proceeds with other queries. |
|
|
Repos |
Azure Repositories |
Repositories larger than 5 GB cannot be restored directly due to Azure DevOps push limits. Workarounds: restore to disk and push in chunks, use Azure DevOps Import feature, or convert large files to Git LFS (not subject to 5 GB limit). |
|
Pipelines |
Pipelines |
YAML build pipelines are supported. Classic build pipelines are not supported. YAML pipeline limitations: agent pools must exist in destination; variable group access restrictions may cause failures. |
|
Environments |
Only the Environment folder structure is created similar to the source. Resources are not created at the destination by the restore operation, and they must be created manually. |
|
|
Releases |
Release definitions with custom task definitions from third-party extensions require matching task versions and extension registration at destination. Releases fail if parent release definitions fail or artifact sources are missing. Build pipeline linking not supported. Manual configuration required for: App service Name, Host name, Service connection. Third-party extensions must be manually installed from marketplace. |
|
|
Library |
Secure files are not backed up. |
|
|
Task groups |
Task groups referencing custom task definitions that do not exist in the destination organization cannot be restored. |
|
|
Deployment groups |
Targets (resources) are not recreated at the destination. Deployment group creation at destination will always create a new deployment pool. Shared pools are not used. |
|
|
Test Plans |
Test Plans |
Automated test cases are not backed up. Execute history and charts are not backed up. Limitations: test plan owners must exist in destination; test variables in use cannot be overwritten; missing iteration paths cause restore failures. |
|
Progress report |
Progress reports are not backed up. |
|
|
Runs |
Runs are not backed up. |
|
|
Artifacts |
Custom or private packages and feed permissions are not backed up. Artifact feeds cannot be created if feeds with the same name already exist in the destination. |
Backups You Can Perform
-
Full backups
-
Incremental backups
-
Synthetic full backups
When You Can Perform Backups
-
On a schedule: The backup plan that you assign manages scheduled backups
-
On demand: You can perform on-demand backups at any time
Backups You Can Use for Restores
-
The most recent backup: For example, restore the most recent backup to its original location
-
A backup from a specific date: For example, restore data to a point in time before it became unusable
-
Backups from a date range: For example, restore data that was accidentally deleted
Destinations You Can Restore To
-
The current location (in place)
-
A different location on the same app or a different app (out of place)
-
A different repository hosting service such as GitHub (out of place)
-
A disk (out of place)