微软 Office 版本控制从 Source Depot 迁移到 Git 的经验和教训
曾参与 OneNote 开发的微软工程师 Daniel Sada 近日发文,介绍了微软 Office 团队将项目的版本控制系统从 Source Depot 迁移到 Git 的经历。
Source Depot 是微软早期基于 Perforce 开发的版本控制系统,随着 Windows 代码规模的扩大,它逐渐显现出诸多问题,如操作缓慢、分支切换困难、集中化导致网络问题时生产力停滞等,且维护成本高昂,员工也希望能掌握更具通用性的技能。
Office 团队面临着规模与复杂性挑战:Office 团队庞大,约有 4000 名工程师,且服务于不同客户群体,有 LTSC、半年度更新、月度更新、内部测试等不同更新节奏,此外其版本号构成复杂,需保证版本间的一致性及测试验证。
数百名微软工程师耗时数年终于将 Office 项目的版本控制从 Source Depot 迁移到了 Git。四千名工程师工作的 MS Office 办公软件项目切换到了 Git。
迁移过程
-
第一阶段:建立“平行宇宙”:创建一个同步 Source Depot 和 Git 的桥梁,将 Source Depot 的分支层次结构映射到 Git 的 DAG 结构,同时保留提交者信息和时间戳,并确保反向整合和正向整合的一致性。初期尝试失败,经历了三次不同年份的尝试才成功建立稳定的同步服务。
-
第二阶段:验证等效性:对两个代码库运行完整的测试套件,每天进行对比,花费数月时间解决语义差异、行尾处理、大小写敏感和测试输出不匹配等问题,直至实现所有测试在两种系统中完全相同通过。
迁移策略
-
人员沟通与协作:采用“冠军”枢纽辐射模式,每个团队指定一名“冠军”作为联络人,在中心工程团队与各团队间建立桥梁,通过多种渠道反复传达信息,确保重要信息被充分接收。
-
培训与技术支持:为开发者提供培训环境,模拟常见工作流程,创建视频库展示真实开发者解决问题的过程,帮助他们熟悉 Git 操作,消除对出错的担忧。
-
回滚策略:制定明确的回滚策略,赋予领导“红色按钮”权力,可在迁移影响生产力时随时停止,以确保迁移过程可控。
原文:https://danielsada.tech/blog/carreer-part-7-how-office-moved-to-git-and-i-loved-devex/

低调大师中文资讯倾力打造互联网数据资讯、行业资源、电子商务、移动互联网、网络营销平台。
持续更新报道IT业界、互联网、市场资讯、驱动更新,是最及时权威的产业资讯及硬件资讯报道平台。
转载内容版权归作者及来源网站所有,本站原创内容转载请注明来源。
- 上一篇
华为增资至 410.4 亿
天眼查资料显示,华为技术有限公司近日发生工商变更,注册资本由约409.4亿人民币增至约410.4亿人民币。该公司成立于1987年9月,由华为投资控股有限公司全资持股。 华为技术有限公司 (曾用名:深圳市华为技术有限公司) ,成立于 1987 年,位于广东省深圳市,法定代表人为赵明路,由华为投资控股有限公司全资持股。是一家以从事计算机、通信和其他电子设备制造业为主的企业。企业注册资本4104113.182万人民币,超过了100%的广东省同行,实缴资本4054113.18万人民币。 变更记录表明,该公司近一年已进行了多次增资,前几次分别发生于 2024 年 4 月、2024 年 6 月以及 2025 年 3 月。
- 下一篇
Chili3D —— 基于 Web 的 3D CAD 应用程序
Chili3D是一款基于 TypeScript 构建的开源、基于浏览器的 3D CAD(计算机辅助设计)应用程序。 它通过将 OpenCascade (OCCT) 编译为 WebAssembly 并与 Three.js 集成,实现了接近原生的性能,从而实现了强大的在线建模、编辑和渲染功能,并且无需本地安装。 可以通过以下方式在线访问 Chili3D: 官方网站:chili3d.com Cloudflare 部署:chili3d.pages.dev 特性 建模工具 Basic Shapes:创建盒子、圆柱体、圆锥体、球体、金字塔等 2D 草图绘制:绘制直线、圆弧、圆、椭圆、矩形、多边形和贝塞尔曲线 高级操作: 布尔运算(并集、差集、交集) 挤压和旋转 清扫和放样 偏移表面 部分创建 捕捉和追踪 对象捕捉:精确捕捉几何特征(点、边、面) 工作平面捕捉:捕捉到当前工作平面以进行精确的平面操作 轴跟踪:沿跟踪轴创建对象以实现精确对齐 特征点检测:自动检测并捕捉关键几何特征 跟踪可视化:显示跟踪线和参考点的视觉指南 编辑工具 修改:倒角、圆角、修剪、断裂、分裂 变换:移动、旋转、镜像 高级编辑:...
相关文章
文章评论
共有0条评论来说两句吧...
文章二维码
点击排行
推荐阅读
最新文章
- SpringBoot2配置默认Tomcat设置,开启更多高级功能
- Hadoop3单机部署,实现最简伪集群
- Docker使用Oracle官方镜像安装(12C,18C,19C)
- Jdk安装(Linux,MacOS,Windows),包含三大操作系统的最全安装
- CentOS8安装Docker,最新的服务器搭配容器使用
- CentOS8,CentOS7,CentOS6编译安装Redis5.0.7
- CentOS关闭SELinux安全模块
- CentOS7,CentOS8安装Elasticsearch6.8.6
- Windows10,CentOS7,CentOS8安装Nodejs环境
- CentOS7安装Docker,走上虚拟化容器引擎之路