DepotToolsTutorial7

http://commondatastorage.googleapis.com/chrome-infra-docs/flat/depot_tools/docs/html/depot_tools_tutorial.html

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を実行する(引数無しで)。最初の実行で、msysgitpythonなどのツールをインストールする。

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.

Page last modified on July 05, 2018, at 06:07 AM
Powered by PmWiki