关于从 Azure DevOps 迁移
你可以使用 GitHub Enterprise Importer 将存储库从 Azure DevOps 迁移到 GitHub Enterprise Cloud。
你只能使用 GitHub Enterprise Importer 从 Azure DevOps Cloud 迁移,而不能从 Azure DevOps Server 迁移。如果你当前使用 Azure DevOps Server 并希望迁移到 GitHub,你可以先迁移到 Azure DevOps Cloud。有关详细信息,请参阅 Azure 网站上的迁移到 Azure DevOps。
已迁移的数据
我们目前仅支持将以下存储库数据从 Azure DevOps 迁移到 GitHub Enterprise Cloud。
- Git 源(包括提交历史记录)
- Pull 请求
- Pull 请求的用户历史记录
- Pull 请求上的工作项链接
- Pull 请求上的附件
- 存储库的分支策略(不包括用户范围的分支策略和跨存储库的分支策略)
如果您想将 Azure Pipelines 迁移到 GitHub Actions,请联系您的 GitHub 帐户经理。
迁移数据的限制
GitHub Enterprise Importer 可以迁移的内容有限。有些限制是由于 GitHub.com 的限制,而另一些限制则是 GitHub Enterprise Importer 本身的限制。
GitHub.com 的限制
- 单个 Git 提交的 2 GB 大小限制:Git 存储库中的任何单个提交都不能大于 2 GB。如果您的任何提交大于 2 GB,您需要将提交拆分为每个小于或等于 2 GB 的较小提交。
- Git 引用 255 字节限制:任何单个 Git 引用(通常称为“引用”)的名称不能大于 255 字节。通常,这意味着您的引用不能长于 255 个字符,但任何非 ASCII 字符(如表情符号)可能会占用多个字节。如果您的任何 Git 引用过大,我们将返回一条清晰的错误消息。
- 100 MB 文件大小限制:Git 存储库中的任何单个文件都不能大于 100 MB。考虑使用 Git LFS 存储大型文件。有关更多信息,请参阅“管理大型文件”。
GitHub Enterprise Importer 的限制
- Git 存储库的 10 GB 大小限制:此限制仅适用于源代码。要检查存储库存档是否超过限制,请使用 git-sizer 工具并查看输出中的总 blob 大小。git-sizer 工具还有助于识别与大文件、blob 大小、提交大小和树计数相关且可能影响迁移的潜在问题。
- 元数据 10 GB 限制:Importer 无法迁移元数据超过 10 GB 的存储库。元数据包括问题、Pull 请求、版本和附件。在大多数情况下,大型元数据是由附加到版本的二进制资产引起的。您可以使用
migrate-repo
命令的--skip-releases
标志从迁移中排除版本,然后在迁移后手动移动版本。 - 未迁移的 Git LFS 对象:导入器可以迁移使用 Git LFS 的存储库,但 LFS 对象本身不会被迁移。迁移完成后,它们可以作为后续任务推送到迁移目标。有关更多信息,请参阅“复制存储库”。
- 所需的后续任务:在 GitHub 产品之间迁移时,某些设置不会被迁移,必须在新存储库中重新配置。有关每次迁移后需要完成的后续任务列表,请参阅“GitHub 产品之间的迁移概述”。
- 延迟的代码搜索功能:在存储库迁移后,重新索引搜索索引可能需要几个小时,并且在重新索引完成之前,代码搜索可能会返回意外的结果。
- 为你的组织配置的规则集会导致迁移失败:例如,如果你配置了一条规则,要求提交作者的电子邮件地址以
@monalisa.cat
结尾,并且你正在迁移的存储库包含不符合此规则的提交,则你的迁移将失败。有关规则集的更多信息,请参阅“关于规则集”。 - 模特内容可能无法搜索:模特是占位符用户,导入的内容(例如问题、请求拉取、评论等)与之关联。当你搜索与模特关联的内容(例如分配的问题)时,可能找不到这些问题。一旦模特被收回,应该可以通过新所有者找到内容。有关更多信息,请参阅“为 GitHub Enterprise Importer 回收模特”。
开始
在从 Azure DevOps 迁移之前,你应该计划如何运行迁移。在迁移任何数据之前,你需要选择一个人来运行迁移。你必须授予该人对迁移源和目标的必要访问权限。我们还建议你首先运行试用迁移。
有关从头到尾的迁移过程概述,请参阅“从 Azure DevOps 迁移到 GitHub Enterprise Cloud 的概述”。