breadcrumbs:
View the updated depot_tools documentation here. These same docs are also available as man pages. Not all the information on this page has been migrated to the man pages yet, so this resource will stay around for a while, but where there are discrepancies, the man pages should be considered authoritative.
The depot_tools tutorial walks through a few key scenarios like managing branches.
Chromium uses a package of scripts, the depot_tools, to manage interaction with the Chromium source code repository and the Chromium development process. It contains the following utilities:
It is highly encouraged to look around and open the files in a text editor as this page can quickly become outdated.
Please keep this page the man pages updated!
See the depot_tools_tutorial for set-up instructions.
These tools don't have man pages but have integrated help! Try all of these commands! If the doc is not adequate, send patches to fix them.
Otherwise, there are many great text editors that can help you out to read what the tools are actually doing.
gclient is a python script to manage a workspace of modular dependencies that are each checked out independently from different subversion or git repositories. Features are:
It's the primary file. It is, in fact, a python script. It specifies the following variables:
Additional variables are ignored.
Each project described in the solutions array can contain an optional DEPS file that will be processed. The .gclient file is generated with gclient config <url> or by hand. Each solutions entry is a dictionary that can contain the following variables:
A DEPS file specifies dependencies of a project. It is in fact a python script. It specifies the following variables:
Additional variables are ignored. Special keywords are:
Each dependency checkout URL can (and usually does) contain a revision number or git hash, which means you're going to check out and build from that specific revision of the module in question. We call that pinned deps. The advantage is that you can build from a known working revision, even if it comes from a completely different SCM repository or going back in time. The drawback is you have to update the revision number(s) constantly, what we call deps rolls.
Chromium's src/DEPS is a fairly complex example that will show all the possibilities of a DEPS file.
Contributing code is done the same way as in other Chromium repositories.
The gclient and git-cl scripts are actually wrapper scripts that will, by default, always update the depot_tools to the latest versions of the tools checked in at https://chromium.googlesource.com/chromium/tools/depot_tools.git. If for some reason you wish to disable this auto-update behavior, either:
DEPOT_TOOLS_UPDATE=0.depot_tools/.git. This may be appropriate if you choose to install depot_tools in a common location for use by multiple users (for example, /usr/local/bin on a Linux system).Note: If you aren‘t using either of these helper scripts (e.g. you’re developing Chromium OS), then you will need to manually update depot_tools yourself from time to time with a simple: git pull
Chromium engineers expect the auto-updating behavior of depot_tools, checkout or presubmit breakage may ensue.