微软宣布在Azure DevOps中支持Git部分克隆

Azure DevOps 扩展支持 Git 部分克隆

Azure DevOps 最近扩展了对 Git 部分克隆(Partial Clone)的支持,所有用户均可使用此功能。部分克隆通过特定的命令行参数启动,是 Git 克隆的简化版本,能够显著提升性能,尤其适用于大型仓库。

部分克隆的优势

  1. 性能提升:与传统克隆相比,部分克隆的平均克隆时间减少了 88.6%。
  2. 减少下载和磁盘占用:部分克隆不会在初始克隆时下载仓库中的所有历史对象,而是在需要时(如分支检出或其他 Git 操作)才下载相关对象。
  3. 适用于大型仓库:对于极大型仓库,传统克隆可能需要数小时甚至数天,且占用超过 100GB 的磁盘空间。部分克隆避免了预先下载不必要的对象,从而显著减少下载时间和磁盘占用。

部分克隆的工作原理

部分克隆通过以下命令行参数实现:

  • Blobless 克隆git clone --filter=blob:none <url>
  • Treeless 克隆git clone --filter=tree:0 <url>

在部分克隆中,缺失的对象可以在需要时按需获取。能够提供这些缺失对象的远程仓库被称为“promisor remote”,因为它承诺在请求时交付这些对象。

与浅克隆的区别

部分克隆与 Azure DevOps 中的浅克隆(Shallow Clone)功能类似,但浅克隆通常用于特定场景(如不需要历史上下文的构建管道),导致提交历史被扁平化,仅显示到某个点的提交,无法感知更早的历史。

社区反馈与未来计划

  1. 社区参与:技术社区在博客评论和 Reddit 上积极参与讨论。Emil Eriksson 询问了 Git 部分克隆与 Azure DevOps Server 2022 的兼容性,Michael Carlson 回应称此功能将在未来的 Azure DevOps Server 版本中提供。
  2. 功能请求:Reddit 上有用户请求将 treeless / blobless 克隆功能纳入标准检出任务中,Microsoft 员工表示将探索此功能的可能性。

总结

Git 部分克隆的引入为 Azure DevOps 用户提供了更高效的克隆方式,尤其适用于大型仓库。通过减少不必要的对象下载,部分克隆显著提升了克隆速度并降低了磁盘占用。未来,此功能还将进一步扩展至 Azure DevOps Server 及其他相关任务中。

阅读 46
0 条评论