depot_tools_tutorial(7)マニュアルページ
--
名前
depot_tools_tutorial - depot_toolsのgit拡張のチュートリアル。
解説
Chromiumのdepot_toolsは誰もが専門家のようにChromiumコードベースの開発に参加できるようにするための作業効率化ツール。ここではこれらのツールを使った開発の説明をする。以下の項目が含まれる。
- セットアップ
- コード取得
- 長くて読んでない(TL;DR)
- CLの作成とアップロード
- コードの更新
- 複数のCLの管理
- 依存しているCLの管理
- 作業の流れの実例
ここで言及されているコマンドの詳細はマニュアルを見るか--helpを参照。
- Note
- :[DEPOT_TOOLS]/man/htmlフォルダにhtmlのヘルプがある。
前提条件
gitについて知っていること。 git add, git status, git commitの意味が理解できて、git rebaseの意味を本質的に理解できていれば十分。
セットアップ
DEPOT TOOLSの取得
Linux / MAC
depot_toolsのレポジトリをcloneする
$ git clone https://chromium.googlesource.com/chromium/tools/depot_tools.git
PATHの最後にdepot_toolsへのパスを追加する。~/.bashrcや~/.zshrcに書いておくといい。
$ export PATH=$PATH:/path/to/depot_tools
Windows
depot_toolsをまとめたものをダウンロードして解凍する。
- 注意
- :隠しフォルダの.gitがちゃんと含まれるように解凍すること。コンテキストメニューの"Extract all..."が使える。
depot_toolsへのパスをPATHの先頭に追加する(どのPythonよりも先になければならない)。 コマンドプロンプトからgclientを実行する(引数無しで)。最初の実行で、msysgitやpythonなどのツールをインストールする。
- Note
- gclientはコマンドプロンプトから実行すること。
- 変なエラーが出たらWindowsインデクスを無効にする。
- gclientが終わったらwhere pythonを実行して、このpythonがdepot_tools配下にあるpython.batになっているかを確認する。(https://crbug.com/611087)
構成のブートストラップ
gitを使うのが初めてならいくつかの設定が必要、メールアドレスと名前を自分のに変えて以下を実行。
$ git config --global user.name "John Doe" $ git config --global user.email "jdoe@email.com" $ git config --global core.autocrlf false $ git config --global core.filemode false $ # and for fun! $ git config --global color.ui true
長くて読んでない(TL;DR)
$ # コードを取得 $ # 空のディレクトリでやる $ fetch {chromium,...} $ # サードパーティのレポを更新してプリコンパイルフックを実行 $ gclient sync $ # 新規変更を作成してアップロードしてレビューしてもらう $ git new-branch <branch_name> $ # 繰り返し: [edit, git add, git commit] $ git cl upload $ # 変更がレビューされたら、CQにコミット $ git cl set_commit $ # 注意:コミットされて着地したハッシュは $ # ローカルのハッシュとは違う値になる。
コードの取得
空のディレクトリへ移動して、どれか好きなのを実行。
$ fetch chromium # 基本チェックアウトのデスクトップChromium $ fetch android # AndroidのChromiumチェックアウト $ fetch ios # iOSのChromiumチェックアウト
fetchが終わったら以下のものが出来ているはず。
.gclient # ソースチェックアウトの構成ファイル src/ # トップレベルのチェックアウト
Linuxでfetchした場合は以下を実行。
$ cd src && ./build/install-build-deps.sh
最後に以下を実行
$ gclient sync
これは依存しているものをチェックアウトする。srcでブランチを変更したり、更新したりした場合は、これを実行しなければならない。
CLの作成とアップロード
- Note
- ここ以降のチュートリアルではカレントディレクトリをsrc/にあるものとする。
それぞれのCLは完全に1つのブランチと対応する。新しいCLを始めたい場合は以下のようにする。
$ git new-branch <branch_name>
これはbranch_nameという名前のブランチを作成してチェックアウトする。このブランチはデフォルトのアップストリームブランチ(origin/master)をトラックする。詳しくは、git-new-branch?を参照。
このブランチに好きなだけコミットしていい。レビューのためにアップロードするには以下を実行。
$ git cl upload
これはあなたのブランチとアップストリームブランチ(今の場合はorigin/master)の差分をとって、Chromiumのコードレビューサイトにポストする。
コードのアップデート
不可避的に、メインのChromiumレポから変更をpullしたいと思うはず。depot_toolsを使えば以下のコマンドで簡単にできる。
$ git rebase-update
This command will update all of your CLs to contain the latest code from their upstreams. It will also automatically clean up CLs which have been committed and a couple other nice things. See git-rebase-update(1) for the full scoop.