Chromium Chronicle #22:了解 Thy (Depot) 工具

第 22 集:由 Edward Lesmes 在加利福尼亚州旧金山改编(2021 年 6 月)
上一集

Depot 工具是基于 Git 构建的一系列工具,用于简化为 Chromium 代码库和相关项目做贡献的开发者的工作流程。其中包含用于获取代码、上传更改以供审核、及时更新结账流程等工具!

获取代码

在一个空目录中运行 fetch chromiumfetch 命令还可用于获取其他代码库(例如 v8 或 webrtc)的代码。如需查看完整列表,请参阅 fetch help

上传更改以供审核

每个 CL 对应于 Git 中的一个分支,因此请先运行 git new-branch <branch_name> 创建一个新分支。请根据需要向此分支提交任意数量的更改,并在该分支准备好接受审核时运行 git cl upload

git cl issue 会告知您分支与哪个 CL 相关联。使用 git cl issue <issue> 进行更改。

及时更新结账信息

定期运行 git rebase-update 以将本地分支同步到其上游,运行 gclient sync 以更新 third_party 代码库并运行预编译钩子。

管理多个 CL

  • git cl status 将显示与本地分支关联的 CL 及其状态(未发送、lgtm、已关闭等)。
  • git freezegit thaw 的工作方式类似于 git stash,但会跟踪与已存储的更改相关联的分支。
  • git map 会显示所有分支的历史记录,git map-branches 会显示所有分支之间的上游关系。
  • git new-branch --upstream_current <branch_name> 会在现有分支之上创建一个新分支。在对基本分支进行更改后,请使用 git rebase-update 对从属分支执行 rebase 操作。

继续在其他机器上处理现有 CL

运行 git cl patch <issue_url> 在当前分支之上择优挑选现有 CL。请注意,它会将当前分支与修补后的 CL 相关联。使用 git cl patch <issue_url> --reapply 可舍弃本地更改并重新应用问题。

其他数据

查看 depot 工具教程并浏览每个命令的帮助消息,以发现所有酷炫功能。如果您遇到任何问题,请告诉我们!