git_cache: lower max num of .pack files before re-bootstrap on Win.

It used to be 50, I think ~9 gives best results for Chromium on Win:
  on golo VM, it takes <4 minutes to re-boostrap + git fetch small
  delta, assuming zipped git checkout for bootstrap is fresh (~1day).

For other repos, which are significantly smaller, this change should
have minor effect if at all.

Test: I tested this using `led` tool on Win7 machines running LUCI
stack extensively. For example,

  * https://ci.chromium.org/swarming/task/3a0102e8c8657410
    shows case with few .pack files, hence just 1 fetch

  * https://ci.chromium.org/swarming/task/3a010282f9fd8010
    shows case with 39 .pack files and so bootstrapping + fetch.
    If you look at prior tasks on the same VM, you'd find this:
    https://ci.chromium.org/swarming/task/39ffe843d01ed010
    which spent 8 minutes doing 1 incremental fetch with 39 .pack
    files.

**Troopers/Sheriffs**: This change is safe to revert.
However, beware that you should also at the same time revert the recipe
roll of this CL to the repo, in which the failed builder's recipe is
located, typically `chromium/tools/build`.

Bug: 749709
Change-Id: I18e2b63283100d466e9fb981a9094862463f6909
Reviewed-on: https://chromium-review.googlesource.com/787174
Commit-Queue: Andrii Shyshkalov <[email protected]>
Reviewed-by: Takuto Ikuta <[email protected]>
2 files changed
tree: 05bed5b7ca74c336ea6ab51108bb806154ad420f
  1. bootstrap/
  2. fetch_configs/
  3. git-templates/
  4. infra/
  5. man/
  6. recipes/
  7. support/
  8. testing_support/
  9. tests/
  10. third_party/
  11. win_toolchain/
  12. zsh-goodies/
  13. .gitattributes
  14. .gitignore
  15. .style.yapf
  16. annotated_gclient.py
  17. appengine_mapper.py
  18. apply_issue
  19. apply_issue.bat
  20. apply_issue.py
  21. auth.py
  22. autoninja
  23. autoninja.bat
  24. autoninja.py
  25. breakpad.py
  26. buildbucket.py
  27. checkout.py
  28. cipd
  29. cipd.bat
  30. cipd.ps1
  31. cipd_bin_setup.bat
  32. cipd_bin_setup.sh
  33. cipd_client_version
  34. cipd_manifest.txt
  35. cit
  36. cit.bat
  37. cit.py
  38. clang-format
  39. clang-format.bat
  40. clang_format.py
  41. clang_format_merge_driver
  42. clang_format_merge_driver.bat
  43. clang_format_merge_driver.py
  44. codereview.settings
  45. compile_single_file
  46. compile_single_file.bat
  47. compile_single_file.py
  48. cpplint.bat
  49. cpplint.py
  50. cpplint_chromium.py
  51. dart_format.py
  52. depot-tools-auth
  53. depot-tools-auth.bat
  54. depot-tools-auth.py
  55. download_from_google_storage
  56. download_from_google_storage.bat
  57. download_from_google_storage.py
  58. ensure_bootstrap
  59. fetch
  60. fetch.bat
  61. fetch.py
  62. fix_encoding.py
  63. gclient
  64. gclient-new-workdir.py
  65. gclient.bat
  66. gclient.py
  67. gclient_completion.sh
  68. gclient_eval.py
  69. gclient_scm.py
  70. gclient_utils.py
  71. gerrit_client.py
  72. gerrit_util.py
  73. git-cache
  74. git-cl
  75. git-crrev-parse
  76. git-crsync
  77. git-drover
  78. git-find-releases
  79. git-footers
  80. git-freeze
  81. git-gs
  82. git-hyper-blame
  83. git-map
  84. git-map-branches
  85. git-mark-merge-base
  86. git-nav-downstream
  87. git-nav-upstream
  88. git-new-branch
  89. git-number
  90. git-rebase-update
  91. git-rename-branch
  92. git-reparent-branch
  93. git-retry
  94. git-runhooks
  95. git-squash-branch
  96. git-thaw
  97. git-upstream-diff
  98. git_cache.py
  99. git_cl.py
  100. git_cl_completion.sh
  101. git_common.py
  102. git_dates.py
  103. git_drover.py
  104. git_find_releases.py
  105. git_footers.py
  106. git_freezer.py
  107. git_hyper_blame.py
  108. git_map.py
  109. git_map_branches.py
  110. git_mark_merge_base.py
  111. git_nav_downstream.py
  112. git_new_branch.py
  113. git_number.py
  114. git_rebase_update.py
  115. git_rename_branch.py
  116. git_reparent_branch.py
  117. git_retry.py
  118. git_squash_branch.py
  119. git_upstream_diff.py
  120. gn
  121. gn.bat
  122. gn.py
  123. gsutil.py
  124. gsutil.vpython
  125. led
  126. led.bat
  127. LICENSE
  128. mac_toolchain
  129. my_activity.py
  130. my_reviews.py
  131. ninja
  132. ninja-linux32
  133. ninja-linux64
  134. ninja-mac
  135. ninja.exe
  136. OWNERS
  137. owners.py
  138. owners_finder.py
  139. patch.py
  140. PRESUBMIT.py
  141. presubmit_canned_checks.py
  142. presubmit_support.py
  143. profile.xml
  144. pylint
  145. pylint.py
  146. pylintrc
  147. python_runner.sh
  148. README.gclient.md
  149. README.git-cl.md
  150. README.md
  151. README.testing
  152. repo
  153. rietveld.py
  154. roll-dep
  155. roll-dep-svn
  156. roll-dep-svn.bat
  157. roll-dep.bat
  158. roll_dep.py
  159. roll_dep_svn.py
  160. scm.py
  161. setup_color.py
  162. split_cl.py
  163. subcommand.py
  164. subprocess2.py
  165. update_depot_tools
  166. update_depot_tools.bat
  167. update_depot_tools_toggle.py
  168. upload_to_google_storage.py
  169. vpython
  170. vpython.bat
  171. WATCHLISTS
  172. watchlists.py
  173. weekly
  174. wtf
README.md

depot_tools

Tools for working with Chromium development. It requires python 2.7.

Tools

The most important tools are:

  • fetch: A gclient wrapper to checkout a project. Use fetch --help for more details.
  • gclient: A meta-checkout tool. Think repo or git submodules, except that it support OS-specific rules, e.g. do not checkout Windows only dependencies when checking out for Android. Use gclient help for more details and README.gclient.md.
  • git cl: A code review tool to interact with Rietveld or Gerrit. Use git cl help for more details and README.git-cl.md.
  • roll-dep: A gclient dependency management tool to submit a dep roll, updating a dependency to a newer revision.

There are a lot of git utilities included.

Updating

depot_tools updates itself automatically when running gclient tool. To disable auto update, set the environment variable DEPOT_TOOLS_UPDATE=0.

To update package manually, run update_depot_tools.bat on Windows, or ./update_depot_tools on Linux or Mac.

On Windows only, running gclient will install git and python.

Contributing

To contribute change for review:

git new-branch <somename>
# Hack
git add .
git commit -a -m "Fixes goat teleporting"
# find reviewers
git cl owners
git log -- <yourfiles>

# Request a review.
git cl upload -r [email protected],[email protected] --send-mail

# Edit change description if needed.
git cl desc

# If change is approved, flag it to be committed.
git cl set-commit

# If change needs more work.
git rebase-update
...
git cl upload -t "Fixes goat teleporter destination to be Australia"

See also open bugs, open reviews, forum or report problems.

cpplint.py

To update cpplint.py, please submit the change upstream first at https://github.com/google/styleguide/tree/gh-pages/cpplint then copy it down.