Jun Yuan Tan 3909103724 Update v8 source 1 year ago
..
bootstrap 3909103724 Update v8 source 1 year ago
fetch_configs 3909103724 Update v8 source 1 year ago
git-templates 3909103724 Update v8 source 1 year ago
infra 3909103724 Update v8 source 1 year ago
man 3909103724 Update v8 source 1 year ago
python-bin 3909103724 Update v8 source 1 year ago
python2-bin 3909103724 Update v8 source 1 year ago
recipes 3909103724 Update v8 source 1 year ago
testing_support 3909103724 Update v8 source 1 year ago
tests 3909103724 Update v8 source 1 year ago
third_party 3909103724 Update v8 source 1 year ago
win_toolchain 3909103724 Update v8 source 1 year ago
zsh-goodies 3909103724 Update v8 source 1 year ago
.cipd_impl.ps1 3909103724 Update v8 source 1 year ago
.gitattributes 3909103724 Update v8 source 1 year ago
.gitignore 3909103724 Update v8 source 1 year ago
.style.yapf 3909103724 Update v8 source 1 year ago
.vpython 3909103724 Update v8 source 1 year ago
.vpython3 3909103724 Update v8 source 1 year ago
CROS_OWNERS 3909103724 Update v8 source 1 year ago
DIR_METADATA 3909103724 Update v8 source 1 year ago
GOMA_OWNERS 3909103724 Update v8 source 1 year ago
LICENSE 3909103724 Update v8 source 1 year ago
LUCI_OWNERS 3909103724 Update v8 source 1 year ago
OWNERS 3909103724 Update v8 source 1 year ago
PRESUBMIT.py 3909103724 Update v8 source 1 year ago
README.gclient.md 3909103724 Update v8 source 1 year ago
README.git-cl.md 3909103724 Update v8 source 1 year ago
README.md 3909103724 Update v8 source 1 year ago
WATCHLISTS 3909103724 Update v8 source 1 year ago
auth.py 3909103724 Update v8 source 1 year ago
autoninja 3909103724 Update v8 source 1 year ago
autoninja.bat 3909103724 Update v8 source 1 year ago
autoninja.py 3909103724 Update v8 source 1 year ago
bb 3909103724 Update v8 source 1 year ago
bb.bat 3909103724 Update v8 source 1 year ago
bootstrap_python3 3909103724 Update v8 source 1 year ago
breakpad.py 3909103724 Update v8 source 1 year ago
cbuildbot 3909103724 Update v8 source 1 year ago
cipd 3909103724 Update v8 source 1 year ago
cipd.bat 3909103724 Update v8 source 1 year ago
cipd_bin_setup.bat 3909103724 Update v8 source 1 year ago
cipd_bin_setup.sh 3909103724 Update v8 source 1 year ago
cipd_client_version 3909103724 Update v8 source 1 year ago
cipd_client_version.digests 3909103724 Update v8 source 1 year ago
cipd_manifest.txt 3909103724 Update v8 source 1 year ago
cipd_manifest.versions 3909103724 Update v8 source 1 year ago
cit 3909103724 Update v8 source 1 year ago
cit.bat 3909103724 Update v8 source 1 year ago
cit.py 3909103724 Update v8 source 1 year ago
clang-format 3909103724 Update v8 source 1 year ago
clang-format.bat 3909103724 Update v8 source 1 year ago
clang_format.py 3909103724 Update v8 source 1 year ago
clang_format_merge_driver 3909103724 Update v8 source 1 year ago
clang_format_merge_driver.bat 3909103724 Update v8 source 1 year ago
clang_format_merge_driver.py 3909103724 Update v8 source 1 year ago
codereview.settings 3909103724 Update v8 source 1 year ago
compile_single_file 3909103724 Update v8 source 1 year ago
compile_single_file.bat 3909103724 Update v8 source 1 year ago
compile_single_file.py 3909103724 Update v8 source 1 year ago
cpplint.bat 3909103724 Update v8 source 1 year ago
cpplint.py 3909103724 Update v8 source 1 year ago
cpplint_chromium.py 3909103724 Update v8 source 1 year ago
cros 3909103724 Update v8 source 1 year ago
cros_sdk 3909103724 Update v8 source 1 year ago
crosjobs 3909103724 Update v8 source 1 year ago
detect_host_arch.py 3909103724 Update v8 source 1 year ago
dirmd 3909103724 Update v8 source 1 year ago
dirmd.bat 3909103724 Update v8 source 1 year ago
download_from_google_storage 3909103724 Update v8 source 1 year ago
download_from_google_storage.bat 3909103724 Update v8 source 1 year ago
download_from_google_storage.py 3909103724 Update v8 source 1 year ago
ensure_bootstrap 3909103724 Update v8 source 1 year ago
fetch 3909103724 Update v8 source 1 year ago
fetch.bat 3909103724 Update v8 source 1 year ago
fetch.py 3909103724 Update v8 source 1 year ago
fix_encoding.py 3909103724 Update v8 source 1 year ago
gclient 3909103724 Update v8 source 1 year ago
gclient-new-workdir.py 3909103724 Update v8 source 1 year ago
gclient.bat 3909103724 Update v8 source 1 year ago
gclient.py 3909103724 Update v8 source 1 year ago
gclient_completion.sh 3909103724 Update v8 source 1 year ago
gclient_eval.py 3909103724 Update v8 source 1 year ago
gclient_paths.py 3909103724 Update v8 source 1 year ago
gclient_scm.py 3909103724 Update v8 source 1 year ago
gclient_utils.py 3909103724 Update v8 source 1 year ago
gerrit_client.py 3909103724 Update v8 source 1 year ago
gerrit_util.py 3909103724 Update v8 source 1 year ago
git-cache 3909103724 Update v8 source 1 year ago
git-cl 3909103724 Update v8 source 1 year ago
git-crrev-parse 3909103724 Update v8 source 1 year ago
git-drover 3909103724 Update v8 source 1 year ago
git-find-releases 3909103724 Update v8 source 1 year ago
git-footers 3909103724 Update v8 source 1 year ago
git-freeze 3909103724 Update v8 source 1 year ago
git-gs 3909103724 Update v8 source 1 year ago
git-hyper-blame 3909103724 Update v8 source 1 year ago
git-map 3909103724 Update v8 source 1 year ago
git-map-branches 3909103724 Update v8 source 1 year ago
git-mark-merge-base 3909103724 Update v8 source 1 year ago
git-migrate-default-branch 3909103724 Update v8 source 1 year ago
git-nav-downstream 3909103724 Update v8 source 1 year ago
git-nav-upstream 3909103724 Update v8 source 1 year ago
git-new-branch 3909103724 Update v8 source 1 year ago
git-number 3909103724 Update v8 source 1 year ago
git-rebase-update 3909103724 Update v8 source 1 year ago
git-rename-branch 3909103724 Update v8 source 1 year ago
git-reparent-branch 3909103724 Update v8 source 1 year ago
git-retry 3909103724 Update v8 source 1 year ago
git-runhooks 3909103724 Update v8 source 1 year ago
git-squash-branch 3909103724 Update v8 source 1 year ago
git-thaw 3909103724 Update v8 source 1 year ago
git-upstream-diff 3909103724 Update v8 source 1 year ago
git_cache.py 3909103724 Update v8 source 1 year ago
git_cl.py 3909103724 Update v8 source 1 year ago
git_cl_completion.sh 3909103724 Update v8 source 1 year ago
git_common.py 3909103724 Update v8 source 1 year ago
git_dates.py 3909103724 Update v8 source 1 year ago
git_drover.py 3909103724 Update v8 source 1 year ago
git_find_releases.py 3909103724 Update v8 source 1 year ago
git_footers.py 3909103724 Update v8 source 1 year ago
git_freezer.py 3909103724 Update v8 source 1 year ago
git_hyper_blame.py 3909103724 Update v8 source 1 year ago
git_map.py 3909103724 Update v8 source 1 year ago
git_map_branches.py 3909103724 Update v8 source 1 year ago
git_mark_merge_base.py 3909103724 Update v8 source 1 year ago
git_migrate_default_branch.py 3909103724 Update v8 source 1 year ago
git_nav_downstream.py 3909103724 Update v8 source 1 year ago
git_new_branch.py 3909103724 Update v8 source 1 year ago
git_number.py 3909103724 Update v8 source 1 year ago
git_rebase_update.py 3909103724 Update v8 source 1 year ago
git_rename_branch.py 3909103724 Update v8 source 1 year ago
git_reparent_branch.py 3909103724 Update v8 source 1 year ago
git_retry.py 3909103724 Update v8 source 1 year ago
git_squash_branch.py 3909103724 Update v8 source 1 year ago
git_upstream_diff.py 3909103724 Update v8 source 1 year ago
gn 3909103724 Update v8 source 1 year ago
gn.bat 3909103724 Update v8 source 1 year ago
gn.py 3909103724 Update v8 source 1 year ago
goma_auth 3909103724 Update v8 source 1 year ago
goma_auth.bat 3909103724 Update v8 source 1 year ago
goma_ctl 3909103724 Update v8 source 1 year ago
goma_ctl.bat 3909103724 Update v8 source 1 year ago
gsutil.py 3909103724 Update v8 source 1 year ago
gsutil.py.bat 3909103724 Update v8 source 1 year ago
gsutil.vpython3 3909103724 Update v8 source 1 year ago
led 3909103724 Update v8 source 1 year ago
led.bat 3909103724 Update v8 source 1 year ago
lockfile.py 3909103724 Update v8 source 1 year ago
luci-auth 3909103724 Update v8 source 1 year ago
luci-auth.bat 3909103724 Update v8 source 1 year ago
lucicfg 3909103724 Update v8 source 1 year ago
lucicfg.bat 3909103724 Update v8 source 1 year ago
mac_toolchain 3909103724 Update v8 source 1 year ago
metrics.README.md 3909103724 Update v8 source 1 year ago
metrics.py 3909103724 Update v8 source 1 year ago
metrics_utils.py 3909103724 Update v8 source 1 year ago
my_activity.py 3909103724 Update v8 source 1 year ago
ninja 3909103724 Update v8 source 1 year ago
ninja-linux32 3909103724 Update v8 source 1 year ago
ninja-linux64 3909103724 Update v8 source 1 year ago
ninja-mac 3909103724 Update v8 source 1 year ago
ninja.exe 3909103724 Update v8 source 1 year ago
ninjalog.README.md 3909103724 Update v8 source 1 year ago
ninjalog_uploader.py 3909103724 Update v8 source 1 year ago
ninjalog_uploader_wrapper.py 3909103724 Update v8 source 1 year ago
owners.py 3909103724 Update v8 source 1 year ago
owners_client.py 3909103724 Update v8 source 1 year ago
owners_finder.py 3909103724 Update v8 source 1 year ago
pinpoint 3909103724 Update v8 source 1 year ago
pinpoint.bat 3909103724 Update v8 source 1 year ago
post_build_ninja_summary.py 3909103724 Update v8 source 1 year ago
presubmit_canned_checks.py 3909103724 Update v8 source 1 year ago
presubmit_canned_checks_test.py 3909103724 Update v8 source 1 year ago
presubmit_canned_checks_test_mocks.py 3909103724 Update v8 source 1 year ago
presubmit_support.py 3909103724 Update v8 source 1 year ago
profile.xml 3909103724 Update v8 source 1 year ago
prpc 3909103724 Update v8 source 1 year ago
prpc.bat 3909103724 Update v8 source 1 year ago
pylint 3909103724 Update v8 source 1 year ago
pylint-1.5 3909103724 Update v8 source 1 year ago
pylint-1.5.bat 3909103724 Update v8 source 1 year ago
pylint-2.6 3909103724 Update v8 source 1 year ago
pylint-2.6.bat 3909103724 Update v8 source 1 year ago
pylint-2.7 3909103724 Update v8 source 1 year ago
pylint-2.7.bat 3909103724 Update v8 source 1 year ago
pylint.bat 3909103724 Update v8 source 1 year ago
pylint_main.py 3909103724 Update v8 source 1 year ago
pylintrc 3909103724 Update v8 source 1 year ago
python_runner.sh 3909103724 Update v8 source 1 year ago
rdb 3909103724 Update v8 source 1 year ago
rdb.bat 3909103724 Update v8 source 1 year ago
rdb_wrapper.py 3909103724 Update v8 source 1 year ago
repo 3909103724 Update v8 source 1 year ago
repo_launcher 3909103724 Update v8 source 1 year ago
roll-dep 3909103724 Update v8 source 1 year ago
roll-dep.bat 3909103724 Update v8 source 1 year ago
roll_dep.py 3909103724 Update v8 source 1 year ago
rustfmt.py 3909103724 Update v8 source 1 year ago
scm.py 3909103724 Update v8 source 1 year ago
setup_color.py 3909103724 Update v8 source 1 year ago
split_cl.py 3909103724 Update v8 source 1 year ago
subcommand.py 3909103724 Update v8 source 1 year ago
subprocess2.py 3909103724 Update v8 source 1 year ago
swift-format 3909103724 Update v8 source 1 year ago
swift_format.py 3909103724 Update v8 source 1 year ago
update_depot_tools 3909103724 Update v8 source 1 year ago
update_depot_tools.bat 3909103724 Update v8 source 1 year ago
update_depot_tools_toggle.py 3909103724 Update v8 source 1 year ago
upload_metrics.py 3909103724 Update v8 source 1 year ago
upload_to_google_storage.py 3909103724 Update v8 source 1 year ago
utils.py 3909103724 Update v8 source 1 year ago
vpython 3909103724 Update v8 source 1 year ago
vpython.bat 3909103724 Update v8 source 1 year ago
vpython3 3909103724 Update v8 source 1 year ago
vpython3.bat 3909103724 Update v8 source 1 year ago
watchlists.py 3909103724 Update v8 source 1 year ago
weekly 3909103724 Update v8 source 1 year ago
whitespace.txt 3909103724 Update v8 source 1 year ago
win32imports.py 3909103724 Update v8 source 1 year ago
wtf 3909103724 Update v8 source 1 year ago
yapf 3909103724 Update v8 source 1 year ago
yapf.bat 3909103724 Update v8 source 1 year ago

README.gclient.md

gclient

gclient is a tool for managing a modular checkout of source code from multiple source code repositories. It wraps underlying source code management commands to provide support for distributing tree updates, status commands, and diffs across multiple checked-out working directories.

The gclient script is controlled by a .gclient file at the top of a directory tree which will contain source code from multiple locations. A .gclient file is a Python script that defines a list of solutions with the following format:

solutions = [
  { "name"        : "src",
    "url"         : "https://chromium.googlesource.com/chromium/src.git",
    "custom_deps" : {
      # To use the trunk of a component instead of what's in DEPS:
      #"component": "https://github.com/luci/luci-go",
      # To exclude a component from your working copy:
      #"data/really_large_component": None,
    }
  },
]

A solution is a collection of component pieces of software that will be checked out in a specific directory layout for building together.

Each entry in the solutions list is defined by a Python dictionary that contains the following items:

  • name: The name of the directory in which the solution will be checked out.
  • url: The URL from which this solution will be checked out. gclient expects that the checked-out solution will contain a file named DEPS that in turn defines the specific pieces that must be checked out to create the working directory layout for building and developing the solution’s software.
  • deps_file: A string containing just the filename (not a path) of the file in the solution dir to use as the list of dependencies. This tag is optional, and defaults to DEPS.
  • custom_deps: A dictionary containing optional custom overrides for entries in the solution’s DEPS file. This can be used to have the local working directory not check out and update specific components, or to sync the local working-directory copy of a given component to a different specific revision, or a branch, or the head of a tree. It can also be used to append new entries that do not exist in the DEPS file.

Within each checked-out solution, gclient expects to find a file typically named DEPS (it actually uses the value of the deps_file key above) which defines the different component pieces of software that must be checked out for the solution. The DEPS file is a Python script that defines a dictionary named deps:

deps = {
  "src/outside": "https://outside-server/one/repo.git@12345677890123456778901234567789012345677890",
  "src/component": "https://dont-use-github.com/its/unreliable.git@0000000000000000000000000000000000000000",
  "src/relative": "/another/repo.git@aaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaaa",
}

Each item in the deps dictionary consists of a key-value pair. The key is the directory into which the component will be checked out, relative to the directory containing the .gclient file. The value is the URL from which that directory will be checked out. If there is no address scheme (that is, no http: prefix), then the value must begin with a slash and is treated relative to the root of the solution’s repository.

The URL typically contains a specific revision or change number (as appropriate for the underlying SCM system) to freeze the external software at a specific, known state. Alternatively, if there is no revision or change number, the URL will track the latest changes on the specific trunk or branch.