Chromium Chronicle #22: Know Thy(Depot)ツール

エピソード 22: Edward Lesmes、カリフォルニア州サンフランシスコ(2021 年 6 月)
前のエピソード

Depot Tools は、Git 上に構築されたツールのコレクションであり、Chromium コードベースと関連プロジェクトに貢献するデベロッパーのワークフローを簡素化します。コードの取得、変更のレビュー用へのアップロード、購入手続きを最新の状態に保つなどのツールが含まれています。

コードを取得する

空のディレクトリで fetch chromium を実行します。fetch コマンドを使用して、v8 や webrtc などの他のリポジトリのコードを取得することもできます。一覧については、fetch help をご覧ください。

変更を審査のためにアップロードする

各 CL は Git の 1 つのブランチに対応しているため、まず git new-branch <branch_name> を実行して新しいブランチを作成します。このブランチに必要に応じていくつでも変更を commit し、レビューの準備が整ったら git cl upload を実行します。

git cl issue は、ブランチがどの CL に関連付けられているかを示します。変更するには git cl issue <issue> を使用します。

購入手続きを最新の状態に保つ

ローカル ブランチをアップストリームに同期するために git rebase-update を定期的に実行し、third_party リポジトリを更新してプリコンパイル フックを実行する gclient sync を実行します。

複数の CL を管理する

  • git cl status には、ローカル ブランチに関連付けられている CL とそのステータス(未送信、lgtm、クローズなど)が表示されます。
  • git freezegit thawgit stash と同様に動作しますが、スタッシュされた変更に関連付けられているブランチを追跡します。
  • git map はすべてのブランチの履歴を示し、git map-branches はすべてのブランチ間のアップストリームの関係を示します。
  • git new-branch --upstream_current <branch_name> は、既存のブランチの上に新しいブランチを作成します。ベースブランチに変更を加えた後、git rebase-update を使用して依存ブランチをリベースします。

別のマシンで既存の CL で作業を続ける

git cl patch <issue_url> を実行して、現在のブランチの上に既存の CL をチェリーピックします。現在のブランチがパッチ適用済みの CL に関連付けられます。git cl patch <issue_url> --reapply を使用して、ローカルの変更を破棄し、問題を再適用します。

その他

depot ツールのチュートリアルを確認し、各コマンドのヘルプ メッセージを調べて、便利な機能をすべて確認します。また、問題がある場合はお知らせください。