libv8 7.3.492.27.1 → 8.4.255.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (718) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.travis.yml +11 -14
  4. data/CHANGELOG.md +10 -0
  5. data/README.md +10 -11
  6. data/Rakefile +30 -36
  7. data/ext/libv8/builder.rb +1 -1
  8. data/lib/libv8/version.rb +1 -1
  9. data/libv8.gemspec +1 -3
  10. data/vendor/depot_tools/{cipd.ps1 → .cipd_impl.ps1} +0 -0
  11. data/vendor/depot_tools/.gitattributes +1 -1
  12. data/vendor/depot_tools/.gitignore +7 -2
  13. data/vendor/depot_tools/.style.yapf +3 -1
  14. data/vendor/depot_tools/.vpython +55 -0
  15. data/vendor/depot_tools/.vpython3 +23 -0
  16. data/vendor/depot_tools/CROS_OWNERS +3 -1
  17. data/vendor/depot_tools/GOMA_OWNERS +9 -0
  18. data/vendor/depot_tools/LUCI_OWNERS +5 -0
  19. data/vendor/depot_tools/OWNERS +21 -6
  20. data/vendor/depot_tools/PRESUBMIT.py +35 -18
  21. data/vendor/depot_tools/README.git-cl.md +0 -14
  22. data/vendor/depot_tools/README.md +1 -1
  23. data/vendor/depot_tools/WATCHLISTS +2 -2
  24. data/vendor/depot_tools/auth.py +60 -772
  25. data/vendor/depot_tools/autoninja +12 -6
  26. data/vendor/depot_tools/autoninja.bat +14 -6
  27. data/vendor/depot_tools/autoninja.py +64 -27
  28. data/vendor/depot_tools/bb +1 -1
  29. data/vendor/depot_tools/bootstrap/{win/README.md → README.md} +28 -14
  30. data/vendor/depot_tools/bootstrap/{win/win_tools.py → bootstrap.py} +60 -43
  31. data/vendor/depot_tools/bootstrap/{win/git-bash.template.sh → git-bash.template.sh} +1 -1
  32. data/vendor/depot_tools/bootstrap/{win/git.template.bat → git.template.bat} +0 -0
  33. data/vendor/depot_tools/bootstrap/manifest.txt +27 -0
  34. data/vendor/depot_tools/bootstrap/manifest_bleeding_edge.txt +27 -0
  35. data/vendor/depot_tools/bootstrap/{win/profile.d.python.sh → profile.d.python.sh} +0 -0
  36. data/vendor/depot_tools/bootstrap/{win/python27.bleeding_edge.bat → python27.bat} +0 -0
  37. data/vendor/depot_tools/bootstrap/{win/python27.new.bat → python3.bat} +3 -3
  38. data/vendor/depot_tools/bootstrap/{win/win_tools.bat → win_tools.bat} +21 -16
  39. data/vendor/depot_tools/bootstrap_python3 +35 -0
  40. data/vendor/depot_tools/cbuildbot +1 -1
  41. data/vendor/depot_tools/chrome_set_ver +1 -1
  42. data/vendor/depot_tools/cipd +43 -39
  43. data/vendor/depot_tools/cipd.bat +2 -2
  44. data/vendor/depot_tools/cipd_client_version +1 -1
  45. data/vendor/depot_tools/cipd_client_version.digests +15 -14
  46. data/vendor/depot_tools/cipd_manifest.txt +31 -8
  47. data/vendor/depot_tools/cipd_manifest.versions +278 -158
  48. data/vendor/depot_tools/cit.py +9 -7
  49. data/vendor/depot_tools/clang_format.py +4 -1
  50. data/vendor/depot_tools/clang_format_merge_driver.py +10 -8
  51. data/vendor/depot_tools/compile_single_file.py +7 -2
  52. data/vendor/depot_tools/cpplint.py +51 -45
  53. data/vendor/depot_tools/cros +87 -0
  54. data/vendor/depot_tools/cros_sdk +1 -1
  55. data/vendor/depot_tools/crosjobs +13 -0
  56. data/vendor/depot_tools/detect_host_arch.py +0 -1
  57. data/vendor/depot_tools/dirmd +12 -0
  58. data/vendor/depot_tools/dirmd.bat +7 -0
  59. data/vendor/depot_tools/download_from_google_storage.py +47 -27
  60. data/vendor/depot_tools/ensure_bootstrap +14 -0
  61. data/vendor/depot_tools/fetch +14 -1
  62. data/vendor/depot_tools/fetch.bat +14 -1
  63. data/vendor/depot_tools/fetch.py +5 -7
  64. data/vendor/depot_tools/fetch_configs/chromium.py +6 -4
  65. data/vendor/depot_tools/fetch_configs/devtools-frontend.py +44 -0
  66. data/vendor/depot_tools/fetch_configs/ios_internal.py +10 -19
  67. data/vendor/depot_tools/fix_encoding.py +19 -5
  68. data/vendor/depot_tools/gclient +28 -12
  69. data/vendor/depot_tools/gclient-new-workdir.py +2 -0
  70. data/vendor/depot_tools/gclient.bat +18 -1
  71. data/vendor/depot_tools/gclient.py +160 -119
  72. data/vendor/depot_tools/gclient_eval.py +119 -107
  73. data/vendor/depot_tools/gclient_paths.py +67 -57
  74. data/vendor/depot_tools/gclient_scm.py +181 -159
  75. data/vendor/depot_tools/gclient_utils.py +177 -124
  76. data/vendor/depot_tools/gerrit_client.py +21 -13
  77. data/vendor/depot_tools/gerrit_util.py +188 -228
  78. data/vendor/depot_tools/git-cache +1 -1
  79. data/vendor/depot_tools/git-cl +1 -1
  80. data/vendor/depot_tools/git-drover +1 -1
  81. data/vendor/depot_tools/git-find-releases +1 -1
  82. data/vendor/depot_tools/git-footers +1 -1
  83. data/vendor/depot_tools/git-freeze +1 -1
  84. data/vendor/depot_tools/git-hyper-blame +1 -1
  85. data/vendor/depot_tools/git-map +1 -1
  86. data/vendor/depot_tools/git-map-branches +1 -1
  87. data/vendor/depot_tools/git-mark-merge-base +1 -1
  88. data/vendor/depot_tools/git-nav-downstream +1 -1
  89. data/vendor/depot_tools/git-new-branch +1 -1
  90. data/vendor/depot_tools/git-number +1 -1
  91. data/vendor/depot_tools/git-rebase-update +1 -1
  92. data/vendor/depot_tools/git-rename-branch +1 -1
  93. data/vendor/depot_tools/git-reparent-branch +1 -1
  94. data/vendor/depot_tools/git-retry +1 -1
  95. data/vendor/depot_tools/git-squash-branch +1 -1
  96. data/vendor/depot_tools/git-thaw +1 -1
  97. data/vendor/depot_tools/git-upstream-diff +1 -1
  98. data/vendor/depot_tools/git_cache.py +255 -360
  99. data/vendor/depot_tools/git_cl.py +1562 -2059
  100. data/vendor/depot_tools/git_cl_completion.sh +16 -2
  101. data/vendor/depot_tools/git_common.py +77 -32
  102. data/vendor/depot_tools/git_drover.py +17 -8
  103. data/vendor/depot_tools/git_find_releases.py +11 -9
  104. data/vendor/depot_tools/git_footers.py +13 -9
  105. data/vendor/depot_tools/git_freezer.py +3 -1
  106. data/vendor/depot_tools/git_hyper_blame.py +25 -32
  107. data/vendor/depot_tools/git_map.py +115 -93
  108. data/vendor/depot_tools/git_map_branches.py +11 -10
  109. data/vendor/depot_tools/git_mark_merge_base.py +8 -6
  110. data/vendor/depot_tools/git_nav_downstream.py +9 -6
  111. data/vendor/depot_tools/git_new_branch.py +39 -33
  112. data/vendor/depot_tools/git_number.py +28 -17
  113. data/vendor/depot_tools/git_rebase_update.py +50 -49
  114. data/vendor/depot_tools/git_rename_branch.py +2 -2
  115. data/vendor/depot_tools/git_reparent_branch.py +8 -6
  116. data/vendor/depot_tools/git_upstream_diff.py +4 -2
  117. data/vendor/depot_tools/gn.py +6 -4
  118. data/vendor/depot_tools/goma_auth +12 -0
  119. data/vendor/depot_tools/goma_auth.bat +8 -0
  120. data/vendor/depot_tools/goma_ctl +12 -0
  121. data/vendor/depot_tools/goma_ctl.bat +8 -0
  122. data/vendor/depot_tools/gsutil.py +5 -2
  123. data/vendor/depot_tools/gsutil.py.bat +8 -0
  124. data/vendor/depot_tools/gsutil.vpython +3 -1
  125. data/vendor/depot_tools/infra/config/OWNERS +2 -2
  126. data/vendor/depot_tools/infra/config/recipes.cfg +3 -2
  127. data/vendor/depot_tools/led +1 -1
  128. data/vendor/depot_tools/lockfile.py +116 -0
  129. data/vendor/depot_tools/luci-auth +1 -1
  130. data/vendor/depot_tools/lucicfg +1 -1
  131. data/vendor/depot_tools/mac_toolchain +1 -1
  132. data/vendor/depot_tools/man/html/depot_tools.html +1 -1
  133. data/vendor/depot_tools/man/html/depot_tools_tutorial.html +31 -25
  134. data/vendor/depot_tools/man/html/git-cl.html +1 -1
  135. data/vendor/depot_tools/man/html/git-drover.html +18 -18
  136. data/vendor/depot_tools/man/html/git-footers.html +1 -1
  137. data/vendor/depot_tools/man/html/git-freeze.html +3 -3
  138. data/vendor/depot_tools/man/html/git-hyper-blame.html +1 -1
  139. data/vendor/depot_tools/man/html/git-map-branches.html +2 -2
  140. data/vendor/depot_tools/man/html/git-map.html +1 -1
  141. data/vendor/depot_tools/man/html/git-mark-merge-base.html +1 -1
  142. data/vendor/depot_tools/man/html/git-nav-downstream.html +3 -3
  143. data/vendor/depot_tools/man/html/git-nav-upstream.html +12 -6
  144. data/vendor/depot_tools/man/html/git-new-branch.html +1 -1
  145. data/vendor/depot_tools/man/html/git-rebase-update.html +20 -1
  146. data/vendor/depot_tools/man/html/git-rename-branch.html +1 -1
  147. data/vendor/depot_tools/man/html/git-reparent-branch.html +1 -1
  148. data/vendor/depot_tools/man/html/git-retry.html +1 -1
  149. data/vendor/depot_tools/man/html/git-squash-branch.html +1 -1
  150. data/vendor/depot_tools/man/html/git-thaw.html +1 -1
  151. data/vendor/depot_tools/man/html/git-upstream-diff.html +10 -6
  152. data/vendor/depot_tools/man/man1/git-cl.1 +4 -4
  153. data/vendor/depot_tools/man/man1/git-drover.1 +21 -21
  154. data/vendor/depot_tools/man/man1/git-footers.1 +4 -4
  155. data/vendor/depot_tools/man/man1/git-freeze.1 +6 -6
  156. data/vendor/depot_tools/man/man1/git-hyper-blame.1 +4 -4
  157. data/vendor/depot_tools/man/man1/git-map-branches.1 +4 -4
  158. data/vendor/depot_tools/man/man1/git-map.1 +4 -4
  159. data/vendor/depot_tools/man/man1/git-mark-merge-base.1 +4 -4
  160. data/vendor/depot_tools/man/man1/git-nav-downstream.1 +6 -6
  161. data/vendor/depot_tools/man/man1/git-nav-upstream.1 +15 -9
  162. data/vendor/depot_tools/man/man1/git-new-branch.1 +3 -3
  163. data/vendor/depot_tools/man/man1/git-rebase-update.1 +14 -4
  164. data/vendor/depot_tools/man/man1/git-rename-branch.1 +4 -4
  165. data/vendor/depot_tools/man/man1/git-reparent-branch.1 +4 -4
  166. data/vendor/depot_tools/man/man1/git-retry.1 +4 -4
  167. data/vendor/depot_tools/man/man1/git-squash-branch.1 +4 -4
  168. data/vendor/depot_tools/man/man1/git-thaw.1 +4 -4
  169. data/vendor/depot_tools/man/man1/git-upstream-diff.1 +7 -13
  170. data/vendor/depot_tools/man/man7/depot_tools.7 +4 -4
  171. data/vendor/depot_tools/man/man7/depot_tools_tutorial.7 +31 -25
  172. data/vendor/depot_tools/man/src/common_demo_functions.sh +2 -2
  173. data/vendor/depot_tools/man/src/depot_tools_tutorial.txt +3 -3
  174. data/vendor/depot_tools/man/src/filter_demo_output.py +4 -2
  175. data/vendor/depot_tools/man/src/git-new-branch.txt +2 -1
  176. data/vendor/depot_tools/man/src/git-rebase-update.txt +8 -1
  177. data/vendor/depot_tools/metrics.README.md +8 -5
  178. data/vendor/depot_tools/metrics.py +7 -6
  179. data/vendor/depot_tools/metrics_utils.py +4 -14
  180. data/vendor/depot_tools/my_activity.py +85 -251
  181. data/vendor/depot_tools/ninja +1 -0
  182. data/vendor/depot_tools/ninja-mac +0 -0
  183. data/vendor/depot_tools/ninjalog_uploader.py +146 -145
  184. data/vendor/depot_tools/ninjalog_uploader_wrapper.py +69 -60
  185. data/vendor/depot_tools/owners.py +156 -43
  186. data/vendor/depot_tools/owners_finder.py +28 -14
  187. data/vendor/depot_tools/post_build_ninja_summary.py +76 -48
  188. data/vendor/depot_tools/presubmit_canned_checks.py +293 -106
  189. data/vendor/depot_tools/presubmit_support.py +527 -333
  190. data/vendor/depot_tools/prpc +1 -1
  191. data/vendor/depot_tools/pylint +2 -12
  192. data/vendor/depot_tools/pylint-1.5 +78 -0
  193. data/vendor/depot_tools/pylint-1.6 +78 -0
  194. data/vendor/depot_tools/pylint-1.7 +78 -0
  195. data/vendor/depot_tools/pylint-1.8 +78 -0
  196. data/vendor/depot_tools/pylint-1.9 +78 -0
  197. data/vendor/depot_tools/{depot-tools-auth.bat → pylint.bat} +2 -2
  198. data/vendor/depot_tools/pylint_main.py +45 -0
  199. data/vendor/depot_tools/pylintrc +14 -1
  200. data/vendor/depot_tools/python-bin/python3 +7 -0
  201. data/vendor/depot_tools/python_runner.sh +13 -8
  202. data/vendor/depot_tools/rdb +12 -0
  203. data/vendor/depot_tools/rdb.bat +7 -0
  204. data/vendor/depot_tools/recipes/OWNERS +0 -1
  205. data/vendor/depot_tools/recipes/README.recipes.md +218 -151
  206. data/vendor/depot_tools/recipes/recipe_modules/OWNERS +1 -1
  207. data/vendor/depot_tools/recipes/recipe_modules/bot_update/__init__.py +17 -16
  208. data/vendor/depot_tools/recipes/recipe_modules/bot_update/api.py +127 -78
  209. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic.json +19 -4
  210. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_luci.json +18 -3
  211. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_with_branch_heads.json +19 -4
  212. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/clobber.json +29 -8
  213. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/deprecated_got_revision_mapping.json +28 -10
  214. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_rebase_patch_ref.json +29 -8
  215. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_reset.json +29 -8
  216. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/input_commit_with_id_without_repo.json +29 -8
  217. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/multiple_patch_refs.json +29 -8
  218. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_apply_patch_on_gclient.json +35 -10
  219. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/{with_manifest_name.json → no_cp_checkout_HEAD.json} +25 -15
  220. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_a_branch_head.json +65 -0
  221. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_a_specific_commit.json +65 -0
  222. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_cp_checkout_master.json +65 -0
  223. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/refs.json +29 -8
  224. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/reset_root_solution_revision.json +29 -8
  225. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/resolve_chromium_fixed_version.json +117 -0
  226. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail.json +17 -11
  227. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch.json +41 -10
  228. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch_download.json +24 -11
  229. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_angle.json +35 -10
  230. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_branch_heads.json +35 -10
  231. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_feature_branch.json +38 -11
  232. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_v8_feature_branch.json +36 -11
  233. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_webrtc.json +35 -10
  234. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8.json +35 -10
  235. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8_head_by_default.json +35 -10
  236. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/unrecognized_commit_repo.json +0 -5
  237. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_tags.json +29 -8
  238. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.py +95 -22
  239. data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/bot_update.py +187 -114
  240. data/vendor/depot_tools/recipes/recipe_modules/bot_update/test_api.py +2 -2
  241. data/vendor/depot_tools/recipes/recipe_modules/bot_update/tests/do_not_retry_patch_failures_in_cq.py +42 -0
  242. data/vendor/depot_tools/recipes/recipe_modules/bot_update/tests/ensure_checkout.py +1 -0
  243. data/vendor/depot_tools/recipes/recipe_modules/cipd/__init__.py +0 -1
  244. data/vendor/depot_tools/recipes/recipe_modules/cipd/api.py +2 -2
  245. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic.json +0 -1
  246. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/basic_pkg.json +0 -1
  247. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-failed.json +2 -4
  248. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/describe-many-instances.json +0 -1
  249. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/mac64.json +0 -1
  250. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_file.json +26 -6
  251. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_mode.json +23 -5
  252. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/pkg_bad_verfile.json +23 -5
  253. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/full.expected/win64.json +0 -1
  254. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk arch.json +0 -1
  255. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk bits.json +0 -1
  256. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_32.json +0 -1
  257. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_64.json +0 -1
  258. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_32.json +0 -1
  259. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_64.json +0 -1
  260. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_mips_64.json +0 -1
  261. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/mac_intel_64.json +0 -1
  262. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_32.json +0 -1
  263. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_64.json +0 -1
  264. data/vendor/depot_tools/recipes/recipe_modules/cipd/test_api.py +1 -1
  265. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/api.py +4 -1
  266. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic.json +4 -2
  267. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/basic_luci.json +3 -1
  268. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/examples/full.expected/win.json +4 -2
  269. data/vendor/depot_tools/recipes/recipe_modules/gclient/__init__.py +2 -1
  270. data/vendor/depot_tools/recipes/recipe_modules/gclient/api.py +82 -13
  271. data/vendor/depot_tools/recipes/recipe_modules/gclient/config.py +23 -11
  272. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/basic.json +3 -4
  273. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/revision.json +3 -6
  274. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/tryserver.json +3 -4
  275. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.py +7 -7
  276. data/vendor/depot_tools/recipes/recipe_modules/gclient/resources/diff_deps.py +16 -0
  277. data/vendor/depot_tools/recipes/recipe_modules/gclient/test_api.py +4 -0
  278. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/basic.json +55 -0
  279. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/dont have revision yet.json +84 -0
  280. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/no change, exception.json +83 -0
  281. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.expected/windows.json +55 -0
  282. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/diff_deps.py +88 -0
  283. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/patch_project.py +9 -21
  284. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/sync_failure.py +24 -0
  285. data/vendor/depot_tools/recipes/recipe_modules/gerrit/api.py +2 -1
  286. data/vendor/depot_tools/recipes/recipe_modules/gerrit/examples/full.expected/basic.json +7 -12
  287. data/vendor/depot_tools/recipes/recipe_modules/git/__init__.py +0 -2
  288. data/vendor/depot_tools/recipes/recipe_modules/git/api.py +9 -17
  289. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic.json +2 -8
  290. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_branch.json +2 -8
  291. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_file_name.json +2 -8
  292. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_hash.json +2 -8
  293. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_ref.json +2 -8
  294. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_submodule_update_force.json +2 -8
  295. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_tags.json +2 -8
  296. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/can_fail_build.json +3 -13
  297. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cannot_fail_build.json +2 -8
  298. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/cat-file_test.json +4 -12
  299. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_delta.json +2 -10
  300. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_failed.json +1 -7
  301. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output.json +1 -7
  302. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/count-objects_with_bad_output_fails_build.json +0 -8
  303. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/curl_trace_file.json +3 -10
  304. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/git-cache-checkout.json +3 -11
  305. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/platform_win.json +2 -8
  306. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/rebase_failed.json +3 -13
  307. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/remote_not_origin.json +2 -8
  308. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/set_got_revision.json +2 -8
  309. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.py +0 -5
  310. data/vendor/depot_tools/recipes/recipe_modules/git_cl/__init__.py +1 -1
  311. data/vendor/depot_tools/recipes/recipe_modules/git_cl/api.py +7 -13
  312. data/vendor/depot_tools/recipes/recipe_modules/git_cl/examples/full.expected/basic.json +21 -16
  313. data/vendor/depot_tools/recipes/recipe_modules/git_cl/examples/full.py +1 -2
  314. data/vendor/depot_tools/recipes/recipe_modules/gitiles/api.py +1 -1
  315. data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.expected/basic.json +0 -1
  316. data/vendor/depot_tools/recipes/recipe_modules/gitiles/resources/gerrit_client.py +2 -2
  317. data/vendor/depot_tools/recipes/recipe_modules/gitiles/tests/parse_repo_url.expected/basic.json +0 -1
  318. data/vendor/depot_tools/recipes/recipe_modules/gsutil/api.py +23 -8
  319. data/vendor/depot_tools/recipes/recipe_modules/gsutil/examples/full.expected/basic.json +52 -1
  320. data/vendor/depot_tools/recipes/recipe_modules/gsutil/examples/full.py +15 -0
  321. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/__init__.py +1 -0
  322. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/api.py +32 -8
  323. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/ancient_version.json +83 -0
  324. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/automatic_version.json +83 -0
  325. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/explicit_version.json +83 -0
  326. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/linux.json +0 -1
  327. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/mac.json +5 -4
  328. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.expected/win.json +0 -1
  329. data/vendor/depot_tools/recipes/recipe_modules/osx_sdk/examples/full.py +21 -2
  330. data/vendor/depot_tools/recipes/recipe_modules/presubmit/__init__.py +20 -0
  331. data/vendor/depot_tools/recipes/recipe_modules/presubmit/api.py +235 -3
  332. data/vendor/depot_tools/recipes/recipe_modules/presubmit/examples/full.expected/basic.json +13 -5
  333. data/vendor/depot_tools/recipes/recipe_modules/presubmit/examples/full.py +5 -1
  334. data/vendor/depot_tools/recipes/recipe_modules/presubmit/properties.proto +14 -0
  335. data/vendor/depot_tools/recipes/recipe_modules/presubmit/test_api.py +19 -0
  336. data/vendor/depot_tools/recipes/recipe_modules/presubmit/tests/execute.py +247 -0
  337. data/vendor/depot_tools/recipes/recipe_modules/presubmit/tests/prepare.py +49 -0
  338. data/vendor/depot_tools/recipes/recipe_modules/tryserver/api.py +33 -45
  339. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/basic_tags.json +0 -1
  340. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch.json +64 -21
  341. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch_and_target_ref.json +64 -21
  342. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch.json +1 -22
  343. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_wrong_patch_new.json +1 -22
  344. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.py +5 -32
  345. data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_fetch_ref_timeout.py +29 -0
  346. data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_owner.expected/basic.json +5 -0
  347. data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_owner.py +22 -0
  348. data/vendor/depot_tools/recipes/recipe_modules/tryserver/tests/gerrit_change_target_ref.py +32 -0
  349. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/linux.json +0 -1
  350. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/mac.json +0 -1
  351. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.expected/win.json +2 -1
  352. data/vendor/depot_tools/recipes/recipe_modules/windows_sdk/examples/full.py +1 -6
  353. data/vendor/depot_tools/recipes/recipes.py +49 -28
  354. data/vendor/depot_tools/recipes/recipes/fetch_end_to_end_test.expected/basic.json +11 -6
  355. data/vendor/depot_tools/repo +698 -540
  356. data/vendor/depot_tools/roll-dep +14 -1
  357. data/vendor/depot_tools/roll-dep.bat +10 -1
  358. data/vendor/depot_tools/roll_dep.py +15 -10
  359. data/vendor/depot_tools/scm.py +95 -75
  360. data/vendor/depot_tools/setup_color.py +36 -2
  361. data/vendor/depot_tools/split_cl.py +44 -32
  362. data/vendor/depot_tools/subcommand.py +6 -6
  363. data/vendor/depot_tools/subprocess2.py +38 -322
  364. data/vendor/depot_tools/third_party/colorama/LICENSE.txt +0 -1
  365. data/vendor/depot_tools/third_party/colorama/README.chromium +4 -5
  366. data/vendor/depot_tools/third_party/colorama/README.rst +346 -0
  367. data/vendor/depot_tools/third_party/colorama/__init__.py +3 -4
  368. data/vendor/depot_tools/third_party/colorama/ansi.py +82 -30
  369. data/vendor/depot_tools/third_party/colorama/ansitowin32.py +105 -37
  370. data/vendor/depot_tools/third_party/colorama/initialise.py +39 -15
  371. data/vendor/depot_tools/third_party/colorama/win32.py +46 -28
  372. data/vendor/depot_tools/third_party/colorama/winterm.py +80 -31
  373. data/vendor/depot_tools/update_depot_tools +18 -8
  374. data/vendor/depot_tools/update_depot_tools.bat +19 -15
  375. data/vendor/depot_tools/upload_metrics.py +7 -6
  376. data/vendor/depot_tools/upload_to_google_storage.py +23 -16
  377. data/vendor/depot_tools/vpython +4 -4
  378. data/vendor/depot_tools/vpython.bat +1 -1
  379. data/vendor/depot_tools/vpython3 +55 -0
  380. data/vendor/depot_tools/vpython3.bat +12 -0
  381. data/vendor/depot_tools/watchlists.py +14 -11
  382. data/vendor/depot_tools/weekly +4 -2
  383. data/vendor/depot_tools/win32imports.py +61 -0
  384. data/vendor/depot_tools/win_toolchain/get_toolchain_if_necessary.py +49 -41
  385. data/vendor/depot_tools/win_toolchain/package_from_installed.py +142 -149
  386. data/vendor/depot_tools/wtf +5 -3
  387. data/vendor/depot_tools/yapf +5 -1
  388. metadata +68 -343
  389. data/vendor/depot_tools/README.testing +0 -23
  390. data/vendor/depot_tools/annotated_gclient.py +0 -89
  391. data/vendor/depot_tools/appengine_mapper.py +0 -23
  392. data/vendor/depot_tools/bootstrap/win/manifest.txt +0 -20
  393. data/vendor/depot_tools/bootstrap/win/manifest_bleeding_edge.txt +0 -20
  394. data/vendor/depot_tools/bootstrap/win/pylint.new.bat +0 -7
  395. data/vendor/depot_tools/buildbucket.py +0 -186
  396. data/vendor/depot_tools/checkout.py +0 -431
  397. data/vendor/depot_tools/cros +0 -1
  398. data/vendor/depot_tools/dart_format.py +0 -58
  399. data/vendor/depot_tools/depot-tools-auth +0 -8
  400. data/vendor/depot_tools/depot-tools-auth.py +0 -102
  401. data/vendor/depot_tools/my_reviews.py +0 -396
  402. data/vendor/depot_tools/patch.py +0 -548
  403. data/vendor/depot_tools/pylint.py +0 -30
  404. data/vendor/depot_tools/recipes/recipe_modules/gclient/examples/full.expected/buildbot.json +0 -239
  405. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/basic_luci.json +0 -222
  406. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/__init__.py +0 -4
  407. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/api.py +0 -29
  408. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/basic.json +0 -15
  409. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_linux.json +0 -15
  410. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_mac.json +0 -15
  411. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_buildbot_win.json +0 -15
  412. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_linux.json +0 -15
  413. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_mac.json +0 -15
  414. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_win.json +0 -15
  415. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_linux.json +0 -15
  416. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_mac.json +0 -15
  417. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_win.json +0 -15
  418. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.py +0 -33
  419. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/path_config.py +0 -66
  420. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/set_failure_hash_with_no_steps.json +0 -11
  421. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_git_patch.json +0 -45
  422. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_git_patch_luci.json +0 -45
  423. data/vendor/depot_tools/rietveld.py +0 -779
  424. data/vendor/depot_tools/roll-dep-svn +0 -8
  425. data/vendor/depot_tools/roll-dep-svn.bat +0 -12
  426. data/vendor/depot_tools/roll_dep_svn.py +0 -430
  427. data/vendor/depot_tools/support/chromite_wrapper +0 -96
  428. data/vendor/depot_tools/third_party/boto/LICENSE +0 -18
  429. data/vendor/depot_tools/third_party/boto/README.chromium +0 -43
  430. data/vendor/depot_tools/third_party/boto/README.rst +0 -163
  431. data/vendor/depot_tools/third_party/boto/__init__.py +0 -793
  432. data/vendor/depot_tools/third_party/boto/auth.py +0 -682
  433. data/vendor/depot_tools/third_party/boto/auth_handler.py +0 -58
  434. data/vendor/depot_tools/third_party/boto/cacerts/__init__.py +0 -22
  435. data/vendor/depot_tools/third_party/boto/cacerts/cacerts.txt +0 -2183
  436. data/vendor/depot_tools/third_party/boto/compat.py +0 -28
  437. data/vendor/depot_tools/third_party/boto/connection.py +0 -1081
  438. data/vendor/depot_tools/third_party/boto/contrib/__init__.py +0 -22
  439. data/vendor/depot_tools/third_party/boto/contrib/ymlmessage.py +0 -52
  440. data/vendor/depot_tools/third_party/boto/core/README +0 -58
  441. data/vendor/depot_tools/third_party/boto/core/__init__.py +0 -23
  442. data/vendor/depot_tools/third_party/boto/core/auth.py +0 -78
  443. data/vendor/depot_tools/third_party/boto/core/credentials.py +0 -154
  444. data/vendor/depot_tools/third_party/boto/core/dictresponse.py +0 -178
  445. data/vendor/depot_tools/third_party/boto/core/service.py +0 -67
  446. data/vendor/depot_tools/third_party/boto/datapipeline/__init__.py +0 -0
  447. data/vendor/depot_tools/third_party/boto/datapipeline/exceptions.py +0 -42
  448. data/vendor/depot_tools/third_party/boto/datapipeline/layer1.py +0 -546
  449. data/vendor/depot_tools/third_party/boto/ecs/__init__.py +0 -90
  450. data/vendor/depot_tools/third_party/boto/ecs/item.py +0 -153
  451. data/vendor/depot_tools/third_party/boto/exception.py +0 -476
  452. data/vendor/depot_tools/third_party/boto/file/README +0 -49
  453. data/vendor/depot_tools/third_party/boto/file/__init__.py +0 -28
  454. data/vendor/depot_tools/third_party/boto/file/bucket.py +0 -112
  455. data/vendor/depot_tools/third_party/boto/file/connection.py +0 -33
  456. data/vendor/depot_tools/third_party/boto/file/key.py +0 -199
  457. data/vendor/depot_tools/third_party/boto/file/simpleresultset.py +0 -30
  458. data/vendor/depot_tools/third_party/boto/fps/__init__.py +0 -21
  459. data/vendor/depot_tools/third_party/boto/fps/connection.py +0 -369
  460. data/vendor/depot_tools/third_party/boto/fps/exception.py +0 -344
  461. data/vendor/depot_tools/third_party/boto/fps/response.py +0 -175
  462. data/vendor/depot_tools/third_party/boto/gs/__init__.py +0 -22
  463. data/vendor/depot_tools/third_party/boto/gs/acl.py +0 -304
  464. data/vendor/depot_tools/third_party/boto/gs/bucket.py +0 -870
  465. data/vendor/depot_tools/third_party/boto/gs/bucketlistresultset.py +0 -64
  466. data/vendor/depot_tools/third_party/boto/gs/connection.py +0 -103
  467. data/vendor/depot_tools/third_party/boto/gs/cors.py +0 -169
  468. data/vendor/depot_tools/third_party/boto/gs/key.py +0 -704
  469. data/vendor/depot_tools/third_party/boto/gs/resumable_upload_handler.py +0 -659
  470. data/vendor/depot_tools/third_party/boto/gs/user.py +0 -54
  471. data/vendor/depot_tools/third_party/boto/handler.py +0 -44
  472. data/vendor/depot_tools/third_party/boto/https_connection.py +0 -124
  473. data/vendor/depot_tools/third_party/boto/jsonresponse.py +0 -163
  474. data/vendor/depot_tools/third_party/boto/manage/__init__.py +0 -23
  475. data/vendor/depot_tools/third_party/boto/manage/cmdshell.py +0 -241
  476. data/vendor/depot_tools/third_party/boto/manage/propget.py +0 -64
  477. data/vendor/depot_tools/third_party/boto/manage/server.py +0 -556
  478. data/vendor/depot_tools/third_party/boto/manage/task.py +0 -175
  479. data/vendor/depot_tools/third_party/boto/manage/test_manage.py +0 -34
  480. data/vendor/depot_tools/third_party/boto/manage/volume.py +0 -420
  481. data/vendor/depot_tools/third_party/boto/mashups/__init__.py +0 -23
  482. data/vendor/depot_tools/third_party/boto/mashups/interactive.py +0 -97
  483. data/vendor/depot_tools/third_party/boto/mashups/iobject.py +0 -115
  484. data/vendor/depot_tools/third_party/boto/mashups/order.py +0 -211
  485. data/vendor/depot_tools/third_party/boto/mashups/server.py +0 -395
  486. data/vendor/depot_tools/third_party/boto/plugin.py +0 -90
  487. data/vendor/depot_tools/third_party/boto/provider.py +0 -337
  488. data/vendor/depot_tools/third_party/boto/pyami/__init__.py +0 -22
  489. data/vendor/depot_tools/third_party/boto/pyami/bootstrap.py +0 -134
  490. data/vendor/depot_tools/third_party/boto/pyami/config.py +0 -229
  491. data/vendor/depot_tools/third_party/boto/pyami/copybot.cfg +0 -60
  492. data/vendor/depot_tools/third_party/boto/pyami/copybot.py +0 -97
  493. data/vendor/depot_tools/third_party/boto/pyami/helloworld.py +0 -28
  494. data/vendor/depot_tools/third_party/boto/pyami/launch_ami.py +0 -178
  495. data/vendor/depot_tools/third_party/boto/pyami/scriptbase.py +0 -44
  496. data/vendor/depot_tools/third_party/boto/pyami/startup.py +0 -60
  497. data/vendor/depot_tools/third_party/boto/regioninfo.py +0 -63
  498. data/vendor/depot_tools/third_party/boto/resultset.py +0 -169
  499. data/vendor/depot_tools/third_party/boto/roboto/__init__.py +0 -1
  500. data/vendor/depot_tools/third_party/boto/roboto/awsqueryrequest.py +0 -504
  501. data/vendor/depot_tools/third_party/boto/roboto/awsqueryservice.py +0 -121
  502. data/vendor/depot_tools/third_party/boto/roboto/param.py +0 -147
  503. data/vendor/depot_tools/third_party/boto/s3/__init__.py +0 -84
  504. data/vendor/depot_tools/third_party/boto/s3/acl.py +0 -164
  505. data/vendor/depot_tools/third_party/boto/s3/bucket.py +0 -1634
  506. data/vendor/depot_tools/third_party/boto/s3/bucketlistresultset.py +0 -139
  507. data/vendor/depot_tools/third_party/boto/s3/bucketlogging.py +0 -83
  508. data/vendor/depot_tools/third_party/boto/s3/connection.py +0 -540
  509. data/vendor/depot_tools/third_party/boto/s3/cors.py +0 -210
  510. data/vendor/depot_tools/third_party/boto/s3/deletemarker.py +0 -55
  511. data/vendor/depot_tools/third_party/boto/s3/key.py +0 -1712
  512. data/vendor/depot_tools/third_party/boto/s3/keyfile.py +0 -134
  513. data/vendor/depot_tools/third_party/boto/s3/lifecycle.py +0 -231
  514. data/vendor/depot_tools/third_party/boto/s3/multidelete.py +0 -138
  515. data/vendor/depot_tools/third_party/boto/s3/multipart.py +0 -315
  516. data/vendor/depot_tools/third_party/boto/s3/prefix.py +0 -42
  517. data/vendor/depot_tools/third_party/boto/s3/resumable_download_handler.py +0 -339
  518. data/vendor/depot_tools/third_party/boto/s3/tagging.py +0 -71
  519. data/vendor/depot_tools/third_party/boto/s3/user.py +0 -49
  520. data/vendor/depot_tools/third_party/boto/s3/website.py +0 -237
  521. data/vendor/depot_tools/third_party/boto/services/__init__.py +0 -23
  522. data/vendor/depot_tools/third_party/boto/services/bs.py +0 -179
  523. data/vendor/depot_tools/third_party/boto/services/message.py +0 -58
  524. data/vendor/depot_tools/third_party/boto/services/result.py +0 -136
  525. data/vendor/depot_tools/third_party/boto/services/service.py +0 -161
  526. data/vendor/depot_tools/third_party/boto/services/servicedef.py +0 -91
  527. data/vendor/depot_tools/third_party/boto/services/sonofmmm.cfg +0 -43
  528. data/vendor/depot_tools/third_party/boto/services/sonofmmm.py +0 -81
  529. data/vendor/depot_tools/third_party/boto/services/submit.py +0 -88
  530. data/vendor/depot_tools/third_party/boto/ses/__init__.py +0 -54
  531. data/vendor/depot_tools/third_party/boto/ses/connection.py +0 -521
  532. data/vendor/depot_tools/third_party/boto/ses/exceptions.py +0 -77
  533. data/vendor/depot_tools/third_party/boto/storage_uri.py +0 -835
  534. data/vendor/depot_tools/third_party/boto/sts/__init__.py +0 -55
  535. data/vendor/depot_tools/third_party/boto/sts/connection.py +0 -207
  536. data/vendor/depot_tools/third_party/boto/sts/credentials.py +0 -215
  537. data/vendor/depot_tools/third_party/boto/utils.py +0 -927
  538. data/vendor/depot_tools/third_party/colorama/README.txt +0 -304
  539. data/vendor/depot_tools/third_party/fancy_urllib/README +0 -22
  540. data/vendor/depot_tools/third_party/fancy_urllib/__init__.py +0 -460
  541. data/vendor/depot_tools/third_party/logilab/README.chromium +0 -6
  542. data/vendor/depot_tools/third_party/logilab/__init__.py +0 -0
  543. data/vendor/depot_tools/third_party/logilab/astroid/LICENSE.txt +0 -340
  544. data/vendor/depot_tools/third_party/logilab/astroid/README.chromium +0 -11
  545. data/vendor/depot_tools/third_party/logilab/astroid/__init__.py +0 -136
  546. data/vendor/depot_tools/third_party/logilab/astroid/__pkginfo__.py +0 -42
  547. data/vendor/depot_tools/third_party/logilab/astroid/arguments.py +0 -233
  548. data/vendor/depot_tools/third_party/logilab/astroid/as_string.py +0 -548
  549. data/vendor/depot_tools/third_party/logilab/astroid/astpeephole.py +0 -86
  550. data/vendor/depot_tools/third_party/logilab/astroid/bases.py +0 -636
  551. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_builtin_inference.py +0 -336
  552. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_dateutil.py +0 -15
  553. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_gi.py +0 -195
  554. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_mechanize.py +0 -18
  555. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_nose.py +0 -82
  556. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_numpy.py +0 -62
  557. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_pytest.py +0 -76
  558. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_qt.py +0 -44
  559. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_six.py +0 -288
  560. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_ssl.py +0 -65
  561. data/vendor/depot_tools/third_party/logilab/astroid/brain/brain_stdlib.py +0 -473
  562. data/vendor/depot_tools/third_party/logilab/astroid/builder.py +0 -263
  563. data/vendor/depot_tools/third_party/logilab/astroid/context.py +0 -81
  564. data/vendor/depot_tools/third_party/logilab/astroid/decorators.py +0 -75
  565. data/vendor/depot_tools/third_party/logilab/astroid/exceptions.py +0 -71
  566. data/vendor/depot_tools/third_party/logilab/astroid/inference.py +0 -359
  567. data/vendor/depot_tools/third_party/logilab/astroid/manager.py +0 -267
  568. data/vendor/depot_tools/third_party/logilab/astroid/mixins.py +0 -147
  569. data/vendor/depot_tools/third_party/logilab/astroid/modutils.py +0 -741
  570. data/vendor/depot_tools/third_party/logilab/astroid/node_classes.py +0 -1053
  571. data/vendor/depot_tools/third_party/logilab/astroid/nodes.py +0 -87
  572. data/vendor/depot_tools/third_party/logilab/astroid/objects.py +0 -186
  573. data/vendor/depot_tools/third_party/logilab/astroid/protocols.py +0 -470
  574. data/vendor/depot_tools/third_party/logilab/astroid/raw_building.py +0 -390
  575. data/vendor/depot_tools/third_party/logilab/astroid/rebuilder.py +0 -989
  576. data/vendor/depot_tools/third_party/logilab/astroid/scoped_nodes.py +0 -1716
  577. data/vendor/depot_tools/third_party/logilab/astroid/test_utils.py +0 -201
  578. data/vendor/depot_tools/third_party/logilab/astroid/transforms.py +0 -96
  579. data/vendor/depot_tools/third_party/logilab/astroid/util.py +0 -89
  580. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/LICENSE +0 -19
  581. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/README.chromium +0 -11
  582. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/__init__.py +0 -20
  583. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/cext.c +0 -1421
  584. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/compat.py +0 -9
  585. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/simple.py +0 -246
  586. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/slots.py +0 -414
  587. data/vendor/depot_tools/third_party/logilab/lazy_object_proxy/utils.py +0 -13
  588. data/vendor/depot_tools/third_party/logilab/wrapt/LICENSE +0 -24
  589. data/vendor/depot_tools/third_party/logilab/wrapt/README.chromium +0 -11
  590. data/vendor/depot_tools/third_party/logilab/wrapt/__init__.py +0 -19
  591. data/vendor/depot_tools/third_party/logilab/wrapt/_wrappers.c +0 -2729
  592. data/vendor/depot_tools/third_party/logilab/wrapt/arguments.py +0 -96
  593. data/vendor/depot_tools/third_party/logilab/wrapt/decorators.py +0 -512
  594. data/vendor/depot_tools/third_party/logilab/wrapt/importer.py +0 -228
  595. data/vendor/depot_tools/third_party/logilab/wrapt/wrappers.py +0 -901
  596. data/vendor/depot_tools/third_party/mock/LICENSE.txt +0 -26
  597. data/vendor/depot_tools/third_party/mock/README.chromium +0 -24
  598. data/vendor/depot_tools/third_party/mock/__init__.py +0 -2366
  599. data/vendor/depot_tools/third_party/oauth2client/LICENSE +0 -202
  600. data/vendor/depot_tools/third_party/oauth2client/MODIFICATIONS.diff +0 -66
  601. data/vendor/depot_tools/third_party/oauth2client/README.chromium +0 -15
  602. data/vendor/depot_tools/third_party/oauth2client/__init__.py +0 -5
  603. data/vendor/depot_tools/third_party/oauth2client/anyjson.py +0 -32
  604. data/vendor/depot_tools/third_party/oauth2client/appengine.py +0 -963
  605. data/vendor/depot_tools/third_party/oauth2client/client.py +0 -1363
  606. data/vendor/depot_tools/third_party/oauth2client/clientsecrets.py +0 -153
  607. data/vendor/depot_tools/third_party/oauth2client/crypt.py +0 -377
  608. data/vendor/depot_tools/third_party/oauth2client/django_orm.py +0 -134
  609. data/vendor/depot_tools/third_party/oauth2client/file.py +0 -124
  610. data/vendor/depot_tools/third_party/oauth2client/gce.py +0 -90
  611. data/vendor/depot_tools/third_party/oauth2client/keyring_storage.py +0 -109
  612. data/vendor/depot_tools/third_party/oauth2client/locked_file.py +0 -373
  613. data/vendor/depot_tools/third_party/oauth2client/multistore_file.py +0 -465
  614. data/vendor/depot_tools/third_party/oauth2client/old_run.py +0 -160
  615. data/vendor/depot_tools/third_party/oauth2client/tools.py +0 -243
  616. data/vendor/depot_tools/third_party/oauth2client/util.py +0 -196
  617. data/vendor/depot_tools/third_party/oauth2client/xsrfutil.py +0 -113
  618. data/vendor/depot_tools/third_party/protobuf26/README.chromium +0 -23
  619. data/vendor/depot_tools/third_party/protobuf26/__init__.py +0 -0
  620. data/vendor/depot_tools/third_party/protobuf26/compiler/__init__.py +0 -0
  621. data/vendor/depot_tools/third_party/protobuf26/compiler/plugin_pb2.py +0 -184
  622. data/vendor/depot_tools/third_party/protobuf26/descriptor.py +0 -849
  623. data/vendor/depot_tools/third_party/protobuf26/descriptor_database.py +0 -137
  624. data/vendor/depot_tools/third_party/protobuf26/descriptor_pb2.py +0 -1522
  625. data/vendor/depot_tools/third_party/protobuf26/descriptor_pool.py +0 -643
  626. data/vendor/depot_tools/third_party/protobuf26/internal/__init__.py +0 -0
  627. data/vendor/depot_tools/third_party/protobuf26/internal/api_implementation.py +0 -89
  628. data/vendor/depot_tools/third_party/protobuf26/internal/containers.py +0 -269
  629. data/vendor/depot_tools/third_party/protobuf26/internal/cpp_message.py +0 -663
  630. data/vendor/depot_tools/third_party/protobuf26/internal/decoder.py +0 -831
  631. data/vendor/depot_tools/third_party/protobuf26/internal/encoder.py +0 -788
  632. data/vendor/depot_tools/third_party/protobuf26/internal/enum_type_wrapper.py +0 -89
  633. data/vendor/depot_tools/third_party/protobuf26/internal/message_listener.py +0 -78
  634. data/vendor/depot_tools/third_party/protobuf26/internal/python_message.py +0 -1247
  635. data/vendor/depot_tools/third_party/protobuf26/internal/type_checkers.py +0 -328
  636. data/vendor/depot_tools/third_party/protobuf26/internal/wire_format.py +0 -268
  637. data/vendor/depot_tools/third_party/protobuf26/message.py +0 -284
  638. data/vendor/depot_tools/third_party/protobuf26/message_factory.py +0 -155
  639. data/vendor/depot_tools/third_party/protobuf26/reflection.py +0 -205
  640. data/vendor/depot_tools/third_party/protobuf26/service.py +0 -226
  641. data/vendor/depot_tools/third_party/protobuf26/service_reflection.py +0 -284
  642. data/vendor/depot_tools/third_party/protobuf26/symbol_database.py +0 -185
  643. data/vendor/depot_tools/third_party/protobuf26/text_encoding.py +0 -110
  644. data/vendor/depot_tools/third_party/protobuf26/text_format.py +0 -873
  645. data/vendor/depot_tools/third_party/pylint.py +0 -37
  646. data/vendor/depot_tools/third_party/pylint/LICENSE.txt +0 -340
  647. data/vendor/depot_tools/third_party/pylint/README.chromium +0 -30
  648. data/vendor/depot_tools/third_party/pylint/__init__.py +0 -46
  649. data/vendor/depot_tools/third_party/pylint/__main__.py +0 -3
  650. data/vendor/depot_tools/third_party/pylint/__pkginfo__.py +0 -80
  651. data/vendor/depot_tools/third_party/pylint/checkers/__init__.py +0 -123
  652. data/vendor/depot_tools/third_party/pylint/checkers/async.py +0 -82
  653. data/vendor/depot_tools/third_party/pylint/checkers/base.py +0 -2010
  654. data/vendor/depot_tools/third_party/pylint/checkers/classes.py +0 -1120
  655. data/vendor/depot_tools/third_party/pylint/checkers/design_analysis.py +0 -348
  656. data/vendor/depot_tools/third_party/pylint/checkers/exceptions.py +0 -369
  657. data/vendor/depot_tools/third_party/pylint/checkers/format.py +0 -993
  658. data/vendor/depot_tools/third_party/pylint/checkers/imports.py +0 -654
  659. data/vendor/depot_tools/third_party/pylint/checkers/logging.py +0 -258
  660. data/vendor/depot_tools/third_party/pylint/checkers/misc.py +0 -105
  661. data/vendor/depot_tools/third_party/pylint/checkers/newstyle.py +0 -169
  662. data/vendor/depot_tools/third_party/pylint/checkers/python3.py +0 -591
  663. data/vendor/depot_tools/third_party/pylint/checkers/raw_metrics.py +0 -129
  664. data/vendor/depot_tools/third_party/pylint/checkers/similar.py +0 -371
  665. data/vendor/depot_tools/third_party/pylint/checkers/spelling.py +0 -264
  666. data/vendor/depot_tools/third_party/pylint/checkers/stdlib.py +0 -280
  667. data/vendor/depot_tools/third_party/pylint/checkers/strings.py +0 -618
  668. data/vendor/depot_tools/third_party/pylint/checkers/typecheck.py +0 -974
  669. data/vendor/depot_tools/third_party/pylint/checkers/utils.py +0 -741
  670. data/vendor/depot_tools/third_party/pylint/checkers/variables.py +0 -1191
  671. data/vendor/depot_tools/third_party/pylint/config.py +0 -820
  672. data/vendor/depot_tools/third_party/pylint/epylint.py +0 -181
  673. data/vendor/depot_tools/third_party/pylint/extensions/__init__.py +0 -0
  674. data/vendor/depot_tools/third_party/pylint/extensions/check_docs.py +0 -311
  675. data/vendor/depot_tools/third_party/pylint/extensions/check_elif.py +0 -62
  676. data/vendor/depot_tools/third_party/pylint/graph.py +0 -179
  677. data/vendor/depot_tools/third_party/pylint/gui.py +0 -531
  678. data/vendor/depot_tools/third_party/pylint/interfaces.py +0 -102
  679. data/vendor/depot_tools/third_party/pylint/lint.py +0 -1381
  680. data/vendor/depot_tools/third_party/pylint/pyreverse/__init__.py +0 -5
  681. data/vendor/depot_tools/third_party/pylint/pyreverse/diadefslib.py +0 -230
  682. data/vendor/depot_tools/third_party/pylint/pyreverse/diagrams.py +0 -258
  683. data/vendor/depot_tools/third_party/pylint/pyreverse/inspector.py +0 -372
  684. data/vendor/depot_tools/third_party/pylint/pyreverse/main.py +0 -147
  685. data/vendor/depot_tools/third_party/pylint/pyreverse/utils.py +0 -210
  686. data/vendor/depot_tools/third_party/pylint/pyreverse/vcgutils.py +0 -198
  687. data/vendor/depot_tools/third_party/pylint/pyreverse/writer.py +0 -198
  688. data/vendor/depot_tools/third_party/pylint/reporters/__init__.py +0 -149
  689. data/vendor/depot_tools/third_party/pylint/reporters/guireporter.py +0 -27
  690. data/vendor/depot_tools/third_party/pylint/reporters/html.py +0 -108
  691. data/vendor/depot_tools/third_party/pylint/reporters/json.py +0 -64
  692. data/vendor/depot_tools/third_party/pylint/reporters/text.py +0 -237
  693. data/vendor/depot_tools/third_party/pylint/reporters/ureports/__init__.py +0 -106
  694. data/vendor/depot_tools/third_party/pylint/reporters/ureports/html_writer.py +0 -93
  695. data/vendor/depot_tools/third_party/pylint/reporters/ureports/nodes.py +0 -181
  696. data/vendor/depot_tools/third_party/pylint/reporters/ureports/text_writer.py +0 -99
  697. data/vendor/depot_tools/third_party/pylint/testutils.py +0 -414
  698. data/vendor/depot_tools/third_party/pylint/utils.py +0 -1148
  699. data/vendor/depot_tools/third_party/pymox/COPYING +0 -202
  700. data/vendor/depot_tools/third_party/pymox/MANIFEST.in +0 -5
  701. data/vendor/depot_tools/third_party/pymox/README +0 -56
  702. data/vendor/depot_tools/third_party/pymox/__init__.py +0 -0
  703. data/vendor/depot_tools/third_party/pymox/mox.py +0 -1643
  704. data/vendor/depot_tools/third_party/pymox/mox_test.py +0 -1708
  705. data/vendor/depot_tools/third_party/pymox/mox_test_helper.py +0 -76
  706. data/vendor/depot_tools/third_party/pymox/setup.py +0 -14
  707. data/vendor/depot_tools/third_party/pymox/stubout.py +0 -142
  708. data/vendor/depot_tools/third_party/pymox/stubout_test.py +0 -47
  709. data/vendor/depot_tools/third_party/pymox/stubout_testee.py +0 -2
  710. data/vendor/depot_tools/third_party/simplejson/LICENSE.txt +0 -19
  711. data/vendor/depot_tools/third_party/simplejson/PKG-INFO +0 -29
  712. data/vendor/depot_tools/third_party/simplejson/__init__.py +0 -437
  713. data/vendor/depot_tools/third_party/simplejson/decoder.py +0 -421
  714. data/vendor/depot_tools/third_party/simplejson/encoder.py +0 -501
  715. data/vendor/depot_tools/third_party/simplejson/ordered_dict.py +0 -119
  716. data/vendor/depot_tools/third_party/simplejson/scanner.py +0 -77
  717. data/vendor/depot_tools/third_party/simplejson/tool.py +0 -39
  718. data/vendor/depot_tools/third_party/upload.py +0 -2565
@@ -24,7 +24,6 @@ try:
24
24
  except ImportError: # For Py3 compatibility
25
25
  import urllib.parse as urlparse
26
26
 
27
- import download_from_google_storage
28
27
  import gclient_utils
29
28
  import git_cache
30
29
  import scm
@@ -230,18 +229,7 @@ class GitWrapper(SCMWrapper):
230
229
  if self.out_cb:
231
230
  filter_kwargs['predicate'] = self.out_cb
232
231
  self.filter = gclient_utils.GitFilter(**filter_kwargs)
233
-
234
- @staticmethod
235
- def BinaryExists():
236
- """Returns true if the command exists."""
237
- try:
238
- # We assume git is newer than 1.7. See: crbug.com/114483
239
- result, version = scm.GIT.AssertVersion('1.7')
240
- if not result:
241
- raise gclient_utils.Error('Git version is older than 1.7: %s' % version)
242
- return result
243
- except OSError:
244
- return False
232
+ self._running_under_rosetta = None
245
233
 
246
234
  def GetCheckoutRoot(self):
247
235
  return scm.GIT.GetCheckoutRoot(self.checkout_path)
@@ -256,9 +244,10 @@ class GitWrapper(SCMWrapper):
256
244
  def _GetDiffFilenames(self, base):
257
245
  """Returns the names of files modified since base."""
258
246
  return self._Capture(
259
- # Filter to remove base if it is None.
260
- filter(bool, ['-c', 'core.quotePath=false', 'diff', '--name-only', base])
261
- ).split()
247
+ # Filter to remove base if it is None.
248
+ list(filter(bool, ['-c', 'core.quotePath=false', 'diff', '--name-only',
249
+ base])
250
+ )).split()
262
251
 
263
252
  def diff(self, options, _args, _file_list):
264
253
  _, revision = gclient_utils.SplitUrlRevision(self.url)
@@ -317,7 +306,7 @@ class GitWrapper(SCMWrapper):
317
306
  files = self._Capture(
318
307
  ['-c', 'core.quotePath=false', 'ls-files']).splitlines()
319
308
  file_list.extend(
320
- [os.path.join(self.checkout_path, f.decode()) for f in files])
309
+ [os.path.join(self.checkout_path, f) for f in files])
321
310
 
322
311
  def _DisableHooks(self):
323
312
  hook_dir = os.path.join(self.checkout_path, '.git', 'hooks')
@@ -350,63 +339,38 @@ class GitWrapper(SCMWrapper):
350
339
  self.Print('FAILED to break lock: %s: %s' % (to_break, ex))
351
340
  raise
352
341
 
353
- # TODO(ehmaldonado): Remove after bot_update is modified to pass the patch's
354
- # branch.
355
- def _GetTargetBranchForCommit(self, commit):
356
- """Get the remote branch a commit is part of."""
357
- _WELL_KNOWN_BRANCHES = [
358
- 'refs/remotes/origin/master',
359
- 'refs/remotes/origin/infra/config',
360
- 'refs/remotes/origin/lkgr',
361
- ]
362
- for branch in _WELL_KNOWN_BRANCHES:
363
- if scm.GIT.IsAncestor(self.checkout_path, commit, branch):
364
- return branch
365
- remote_refs = self._Capture(
366
- ['for-each-ref', 'refs/remotes/%s' % self.remote,
367
- '--format=%(refname)']).splitlines()
368
- for ref in sorted(remote_refs, reverse=True):
369
- if scm.GIT.IsAncestor(self.checkout_path, commit, ref):
370
- return ref
371
- self.Print('Failed to find a remote ref that contains %s. '
372
- 'Candidate refs were %s.' % (commit, remote_refs))
373
- # Fallback to the commit we got.
374
- # This means that apply_path_ref will try to find the merge-base between the
375
- # patch and the commit (which is most likely the commit) and cherry-pick
376
- # everything in between.
377
- return commit
378
-
379
- def apply_patch_ref(self, patch_repo, patch_ref, target_branch, options,
342
+ def apply_patch_ref(self, patch_repo, patch_rev, target_rev, options,
380
343
  file_list):
381
344
  """Apply a patch on top of the revision we're synced at.
382
345
 
383
- The patch ref is given by |patch_repo|@|patch_ref|, and the current revision
384
- is |base_rev|.
385
- We also need the |target_branch| that the patch was uploaded against. We use
386
- it to find a merge base between |patch_rev| and |base_rev|, so we can find
387
- what commits constitute the patch:
346
+ The patch ref is given by |patch_repo|@|patch_rev|.
347
+ |target_rev| is usually the branch that the |patch_rev| was uploaded against
348
+ (e.g. 'refs/heads/master'), but this is not required.
388
349
 
389
- Graphically, it looks like this:
350
+ We cherry-pick all commits reachable from |patch_rev| on top of the curret
351
+ HEAD, excluding those reachable from |target_rev|
352
+ (i.e. git cherry-pick target_rev..patch_rev).
390
353
 
391
- ... -> merge_base -> [possibly already landed commits] -> target_branch
392
- \
393
- -> [possibly not yet landed dependent CLs] -> patch_rev
354
+ Graphically, it looks like this:
394
355
 
395
- Next, we apply the commits |merge_base..patch_rev| on top of whatever is
396
- currently checked out, denoted |base_rev|. Typically, it'd be a revision
397
- from |target_branch|, but this is not required.
356
+ ... -> o -> [possibly already landed commits] -> target_rev
357
+ \
358
+ -> [possibly not yet landed dependent CLs] -> patch_rev
398
359
 
399
- Graphically, we cherry pick |merge_base..patch_rev| on top of |base_rev|:
360
+ The final checkout state is then:
400
361
 
401
- ... -> base_rev -> [possibly not yet landed dependent CLs] -> patch_rev
362
+ ... -> HEAD -> [possibly not yet landed dependent CLs] -> patch_rev
402
363
 
403
364
  After application, if |options.reset_patch_ref| is specified, we soft reset
404
- the just cherry-picked changes, keeping them in git index only.
365
+ the cherry-picked changes, keeping them in git index only.
405
366
 
406
367
  Args:
407
- patch_repo: The patch origin. e.g. 'https://foo.googlesource.com/bar'
408
- patch_ref: The ref to the patch. e.g. 'refs/changes/1234/34/1'.
409
- target_branch: The branch the patch was uploaded against.
368
+ patch_repo: The patch origin.
369
+ e.g. 'https://foo.googlesource.com/bar'
370
+ patch_rev: The revision to patch.
371
+ e.g. 'refs/changes/1234/34/1'.
372
+ target_rev: The revision to use when finding the merge base.
373
+ Typically, the branch that the patch was uploaded against.
410
374
  e.g. 'refs/heads/master' or 'refs/heads/infra/config'.
411
375
  options: The options passed to gclient.
412
376
  file_list: A list where modified files will be appended.
@@ -419,28 +383,48 @@ class GitWrapper(SCMWrapper):
419
383
  pass
420
384
 
421
385
  base_rev = self._Capture(['rev-parse', 'HEAD'])
422
- target_branch = target_branch or self._GetTargetBranchForCommit(base_rev)
423
- self.Print('===Applying patch ref===')
424
- self.Print('Patch ref is %r @ %r. Target branch for patch is %r. '
425
- 'Current HEAD is %r. Current dir is %r' % (
426
- patch_repo, patch_ref, target_branch, base_rev,
427
- self.checkout_path))
386
+
387
+ if not target_rev:
388
+ raise gclient_utils.Error('A target revision for the patch must be given')
389
+ elif target_rev.startswith('refs/heads/'):
390
+ # If |target_rev| is in refs/heads/**, try first to find the corresponding
391
+ # remote ref for it, since |target_rev| might point to a local ref which
392
+ # is not up to date with the corresponding remote ref.
393
+ remote_ref = ''.join(scm.GIT.RefToRemoteRef(target_rev, self.remote))
394
+ self.Print('Trying the corresponding remote ref for %r: %r\n' % (
395
+ target_rev, remote_ref))
396
+ if scm.GIT.IsValidRevision(self.checkout_path, remote_ref):
397
+ target_rev = remote_ref
398
+ elif not scm.GIT.IsValidRevision(self.checkout_path, target_rev):
399
+ # Fetch |target_rev| if it's not already available.
400
+ url, _ = gclient_utils.SplitUrlRevision(self.url)
401
+ mirror = self._GetMirror(url, options, target_rev)
402
+ if mirror:
403
+ rev_type = 'branch' if target_rev.startswith('refs/') else 'hash'
404
+ self._UpdateMirrorIfNotContains(mirror, options, rev_type, target_rev)
405
+ self._Fetch(options, refspec=target_rev)
406
+
407
+ self.Print('===Applying patch===')
408
+ self.Print('Revision to patch is %r @ %r.' % (patch_repo, patch_rev))
409
+ self.Print('Current dir is %r' % self.checkout_path)
428
410
  self._Capture(['reset', '--hard'])
429
- self._Capture(['fetch', patch_repo, patch_ref])
411
+ self._Capture(['fetch', '--no-tags', patch_repo, patch_rev])
430
412
  patch_rev = self._Capture(['rev-parse', 'FETCH_HEAD'])
431
413
 
432
- try:
433
- if not options.rebase_patch_ref:
434
- self._Capture(['checkout', patch_rev])
435
- else:
436
- # Find the merge-base between the branch_rev and patch_rev to find out
437
- # the changes we need to cherry-pick on top of base_rev.
438
- merge_base = self._Capture(['merge-base', target_branch, patch_rev])
439
- self.Print('Merge base of %s and %s is %s' % (
440
- target_branch, patch_rev, merge_base))
441
- if merge_base == patch_rev:
442
- # If the merge-base is patch_rev, it means patch_rev is already part
443
- # of the history, so just check it out.
414
+ if not options.rebase_patch_ref:
415
+ self._Capture(['checkout', patch_rev])
416
+ # Adjust base_rev to be the first parent of our checked out patch ref;
417
+ # This will allow us to correctly extend `file_list`, and will show the
418
+ # correct file-list to programs which do `git diff --cached` expecting to
419
+ # see the patch diff.
420
+ base_rev = self._Capture(['rev-parse', patch_rev+'~'])
421
+
422
+ else:
423
+ self.Print('Will cherrypick %r .. %r on top of %r.' % (
424
+ target_rev, patch_rev, base_rev))
425
+ try:
426
+ if scm.GIT.IsAncestor(self.checkout_path, patch_rev, target_rev):
427
+ # If |patch_rev| is an ancestor of |target_rev|, check it out.
444
428
  self._Capture(['checkout', patch_rev])
445
429
  else:
446
430
  # If a change was uploaded on top of another change, which has already
@@ -448,28 +432,29 @@ class GitWrapper(SCMWrapper):
448
432
  # redundant, since it has already landed and its changes incorporated
449
433
  # in the tree.
450
434
  # We pass '--keep-redundant-commits' to ignore those changes.
451
- self._Capture(['cherry-pick', merge_base + '..' + patch_rev,
435
+ self._Capture(['cherry-pick', target_rev + '..' + patch_rev,
452
436
  '--keep-redundant-commits'])
453
437
 
454
- if file_list is not None:
455
- file_list.extend(self._GetDiffFilenames(base_rev))
438
+ except subprocess2.CalledProcessError as e:
439
+ self.Print('Failed to apply patch.')
440
+ self.Print('Revision to patch was %r @ %r.' % (patch_repo, patch_rev))
441
+ self.Print('Tried to cherrypick %r .. %r on top of %r.' % (
442
+ target_rev, patch_rev, base_rev))
443
+ self.Print('Current dir is %r' % self.checkout_path)
444
+ self.Print('git returned non-zero exit status %s:\n%s' % (
445
+ e.returncode, e.stderr.decode('utf-8')))
446
+ # Print the current status so that developers know what changes caused
447
+ # the patch failure, since git cherry-pick doesn't show that
448
+ # information.
449
+ self.Print(self._Capture(['status']))
450
+ try:
451
+ self._Capture(['cherry-pick', '--abort'])
452
+ except subprocess2.CalledProcessError:
453
+ pass
454
+ raise
456
455
 
457
- except subprocess2.CalledProcessError as e:
458
- self.Print('Failed to apply patch.')
459
- self.Print('Patch ref is %r @ %r. Target branch for patch is %r. '
460
- 'Current HEAD is %r. Current dir is %r' % (
461
- patch_repo, patch_ref, target_branch, base_rev,
462
- self.checkout_path))
463
- self.Print('git returned non-zero exit status %s:\n%s' % (
464
- e.returncode, e.stderr))
465
- # Print the current status so that developers know what changes caused the
466
- # patch failure, since git cherry-pick doesn't show that information.
467
- self.Print(self._Capture(['status']))
468
- try:
469
- self._Capture(['cherry-pick', '--abort'])
470
- except subprocess2.CalledProcessError:
471
- pass
472
- raise
456
+ if file_list is not None:
457
+ file_list.extend(self._GetDiffFilenames(base_rev))
473
458
 
474
459
  if options.reset_patch_ref:
475
460
  self._Capture(['reset', '--soft', base_rev])
@@ -517,6 +502,9 @@ class GitWrapper(SCMWrapper):
517
502
  if ':' in revision:
518
503
  revision_ref, _, revision = revision.partition(':')
519
504
 
505
+ if revision_ref.startswith('refs/branch-heads'):
506
+ options.with_branch_heads = True
507
+
520
508
  mirror = self._GetMirror(url, options, revision_ref)
521
509
  if mirror:
522
510
  url = mirror.mirror_path
@@ -562,7 +550,7 @@ class GitWrapper(SCMWrapper):
562
550
  files = self._Capture(
563
551
  ['-c', 'core.quotePath=false', 'ls-files']).splitlines()
564
552
  file_list.extend(
565
- [os.path.join(self.checkout_path, f.decode()) for f in files])
553
+ [os.path.join(self.checkout_path, f) for f in files])
566
554
  if mirror:
567
555
  self._Capture(
568
556
  ['remote', 'set-url', '--push', 'origin', mirror.url])
@@ -595,7 +583,7 @@ class GitWrapper(SCMWrapper):
595
583
  # Skip url auto-correction if remote.origin.gclient-auto-fix-url is set.
596
584
  # This allows devs to use experimental repos which have a different url
597
585
  # but whose branch(s) are the same as official repos.
598
- if (current_url.rstrip(b'/') != url.rstrip('/') and url != 'git://foo' and
586
+ if (current_url.rstrip('/') != url.rstrip('/') and url != 'git://foo' and
599
587
  subprocess2.capture(
600
588
  ['git', 'config', 'remote.%s.gclient-auto-fix-url' % self.remote],
601
589
  cwd=self.checkout_path).strip() != 'False'):
@@ -770,7 +758,8 @@ class GitWrapper(SCMWrapper):
770
758
  merge_output = self._Capture(merge_args)
771
759
  except subprocess2.CalledProcessError as e:
772
760
  rebase_files = []
773
- if re.match('fatal: Not possible to fast-forward, aborting.', e.stderr):
761
+ if re.match(b'fatal: Not possible to fast-forward, aborting.',
762
+ e.stderr):
774
763
  if not printed_path:
775
764
  self.Print('_____ %s at %s' % (self.relpath, revision),
776
765
  timestamp=False)
@@ -800,19 +789,19 @@ class GitWrapper(SCMWrapper):
800
789
  return
801
790
  else:
802
791
  self.Print('Input not recognized')
803
- elif re.match("error: Your local changes to '.*' would be "
804
- "overwritten by merge. Aborting.\nPlease, commit your "
805
- "changes or stash them before you can merge.\n",
792
+ elif re.match(b"error: Your local changes to '.*' would be "
793
+ b"overwritten by merge. Aborting.\nPlease, commit your "
794
+ b"changes or stash them before you can merge.\n",
806
795
  e.stderr):
807
796
  if not printed_path:
808
797
  self.Print('_____ %s at %s' % (self.relpath, revision),
809
798
  timestamp=False)
810
799
  printed_path = True
811
- raise gclient_utils.Error(e.stderr)
800
+ raise gclient_utils.Error(e.stderr.decode('utf-8'))
812
801
  else:
813
802
  # Some other problem happened with the merge
814
803
  logging.error("Error during fast-forward merge in %s!" % self.relpath)
815
- self.Print(e.stderr)
804
+ self.Print(e.stderr.decode('utf-8'))
816
805
  raise
817
806
  else:
818
807
  # Fast-forward merge was successful
@@ -869,7 +858,7 @@ class GitWrapper(SCMWrapper):
869
858
  if not os.path.isdir(self.checkout_path):
870
859
  # revert won't work if the directory doesn't exist. It needs to
871
860
  # checkout instead.
872
- self.Print('_____ %s is missing, synching instead' % self.relpath)
861
+ self.Print('_____ %s is missing, syncing instead' % self.relpath)
873
862
  # Don't reuse the args.
874
863
  return self.update(options, [], file_list)
875
864
 
@@ -888,8 +877,8 @@ class GitWrapper(SCMWrapper):
888
877
  except NoUsableRevError as e:
889
878
  # If the DEPS entry's url and hash changed, try to update the origin.
890
879
  # See also http://crbug.com/520067.
891
- logging.warn(
892
- 'Couldn\'t find usable revision, will retrying to update instead: %s',
880
+ logging.warning(
881
+ "Couldn't find usable revision, will retrying to update instead: %s",
893
882
  e.message)
894
883
  return self.update(options, [], file_list)
895
884
 
@@ -915,13 +904,14 @@ class GitWrapper(SCMWrapper):
915
904
  self.Print('________ couldn\'t run status in %s:\n'
916
905
  'The directory does not exist.' % self.checkout_path)
917
906
  else:
918
- try:
919
- merge_base = [self._Capture(['merge-base', 'HEAD', self.remote])]
920
- except subprocess2.CalledProcessError:
921
- merge_base = []
907
+ merge_base = []
908
+ if self.url:
909
+ _, base_rev = gclient_utils.SplitUrlRevision(self.url)
910
+ if base_rev:
911
+ merge_base = [base_rev]
922
912
  self._Run(
923
913
  ['-c', 'core.quotePath=false', 'diff', '--name-status'] + merge_base,
924
- options, stdout=self.out_fh, always=options.verbose)
914
+ options, always_show_header=options.verbose)
925
915
  if file_list is not None:
926
916
  files = self._GetDiffFilenames(merge_base[0] if merge_base else None)
927
917
  file_list.extend([os.path.join(self.checkout_path, f) for f in files])
@@ -993,9 +983,7 @@ class GitWrapper(SCMWrapper):
993
983
  mirror.populate(verbose=options.verbose,
994
984
  bootstrap=not getattr(options, 'no_bootstrap', False),
995
985
  depth=depth,
996
- ignore_lock=getattr(options, 'ignore_locks', False),
997
986
  lock_timeout=getattr(options, 'lock_timeout', 0))
998
- mirror.unlock()
999
987
 
1000
988
  def _Clone(self, revision, url, options):
1001
989
  """Clone a git repository from the given URL.
@@ -1046,12 +1034,12 @@ class GitWrapper(SCMWrapper):
1046
1034
  clone_cmd.append(tmp_dir)
1047
1035
  if self.print_outbuf:
1048
1036
  print_stdout = True
1049
- stdout = gclient_utils.WriteToStdout(self.out_fh)
1037
+ filter_fn = None
1050
1038
  else:
1051
1039
  print_stdout = False
1052
- stdout = self.out_fh
1040
+ filter_fn = self.filter
1053
1041
  self._Run(clone_cmd, options, cwd=self._root_dir, retry=True,
1054
- print_stdout=print_stdout, stdout=stdout)
1042
+ print_stdout=print_stdout, filter_fn=filter_fn)
1055
1043
  gclient_utils.safe_makedirs(self.checkout_path)
1056
1044
  gclient_utils.safe_rename(os.path.join(tmp_dir, '.git'),
1057
1045
  os.path.join(self.checkout_path, '.git'))
@@ -1083,11 +1071,7 @@ class GitWrapper(SCMWrapper):
1083
1071
  raise gclient_utils.Error("Background task requires input. Rerun "
1084
1072
  "gclient with --jobs=1 so that\n"
1085
1073
  "interaction is possible.")
1086
- try:
1087
- return raw_input(prompt)
1088
- except KeyboardInterrupt:
1089
- # Hide the exception.
1090
- sys.exit(1)
1074
+ return gclient_utils.AskForData(prompt)
1091
1075
 
1092
1076
 
1093
1077
  def _AttemptRebase(self, upstream, files, options, newbase=None,
@@ -1126,8 +1110,8 @@ class GitWrapper(SCMWrapper):
1126
1110
  try:
1127
1111
  rebase_output = scm.GIT.Capture(rebase_cmd, cwd=self.checkout_path)
1128
1112
  except subprocess2.CalledProcessError as e:
1129
- if (re.match(r'cannot rebase: you have unstaged changes', e.stderr) or
1130
- re.match(r'cannot rebase: your index contains uncommitted changes',
1113
+ if (re.match(br'cannot rebase: you have unstaged changes', e.stderr) or
1114
+ re.match(br'cannot rebase: your index contains uncommitted changes',
1131
1115
  e.stderr)):
1132
1116
  while True:
1133
1117
  rebase_action = self._AskForData(
@@ -1145,18 +1129,19 @@ class GitWrapper(SCMWrapper):
1145
1129
  "cd %s && git " % self.checkout_path
1146
1130
  + "%s" % ' '.join(rebase_cmd))
1147
1131
  elif re.match(r'show|s', rebase_action, re.I):
1148
- self.Print('%s' % e.stderr.strip())
1132
+ self.Print('%s' % e.stderr.decode('utf-8').strip())
1149
1133
  continue
1150
1134
  else:
1151
1135
  gclient_utils.Error("Input not recognized")
1152
1136
  continue
1153
- elif re.search(r'^CONFLICT', e.stdout, re.M):
1137
+ elif re.search(br'^CONFLICT', e.stdout, re.M):
1154
1138
  raise gclient_utils.Error("Conflict while rebasing this branch.\n"
1155
1139
  "Fix the conflict and run gclient again.\n"
1156
1140
  "See 'man git-rebase' for details.\n")
1157
1141
  else:
1158
- self.Print(e.stdout.strip())
1159
- self.Print('Rebase produced error output:\n%s' % e.stderr.strip())
1142
+ self.Print(e.stdout.decode('utf-8').strip())
1143
+ self.Print('Rebase produced error output:\n%s' %
1144
+ e.stderr.decode('utf-8').strip())
1160
1145
  raise gclient_utils.Error("Unrecognized error, please merge or rebase "
1161
1146
  "manually.\ncd %s && git " %
1162
1147
  self.checkout_path
@@ -1186,7 +1171,7 @@ class GitWrapper(SCMWrapper):
1186
1171
  try:
1187
1172
  self._Capture(['rev-list', '-n', '1', 'HEAD'])
1188
1173
  except subprocess2.CalledProcessError as e:
1189
- if ('fatal: bad object HEAD' in e.stderr
1174
+ if (b'fatal: bad object HEAD' in e.stderr
1190
1175
  and self.cache_dir and self.cache_dir in url):
1191
1176
  self.Print((
1192
1177
  'Likely due to DEPS change with git cache_dir, '
@@ -1267,13 +1252,27 @@ class GitWrapper(SCMWrapper):
1267
1252
  return branch
1268
1253
 
1269
1254
  def _Capture(self, args, **kwargs):
1255
+ set_git_dir = 'cwd' not in kwargs
1270
1256
  kwargs.setdefault('cwd', self.checkout_path)
1271
1257
  kwargs.setdefault('stderr', subprocess2.PIPE)
1272
1258
  strip = kwargs.pop('strip', True)
1273
1259
  env = scm.GIT.ApplyEnvVars(kwargs)
1274
- ret = subprocess2.check_output(['git'] + args, env=env, **kwargs)
1260
+ # If an explicit cwd isn't set, then default to the .git/ subdir so we get
1261
+ # stricter behavior. This can be useful in cases of slight corruption --
1262
+ # we don't accidentally go corrupting parent git checks too. See
1263
+ # https://crbug.com/1000825 for an example.
1264
+ if set_git_dir:
1265
+ git_dir = os.path.abspath(os.path.join(self.checkout_path, '.git'))
1266
+ # Depending on how the .gclient file was defined, self.checkout_path
1267
+ # might be set to a unicode string, not a regular string; on Windows
1268
+ # Python2, we can't set env vars to be unicode strings, so we
1269
+ # forcibly cast the value to a string before setting it.
1270
+ env.setdefault('GIT_DIR', str(git_dir))
1271
+ ret = subprocess2.check_output(
1272
+ ['git'] + args, env=env, **kwargs).decode('utf-8')
1275
1273
  if strip:
1276
1274
  ret = ret.strip()
1275
+ self.Print('Finished running: %s %s' % ('git', ' '.join(args)))
1277
1276
  return ret
1278
1277
 
1279
1278
  def _Checkout(self, options, ref, force=False, quiet=None):
@@ -1282,7 +1281,7 @@ class GitWrapper(SCMWrapper):
1282
1281
  Args:
1283
1282
  options: The configured option set
1284
1283
  ref: (str) The branch/commit to checkout
1285
- quiet: (bool/None) Whether or not the checkout shoud pass '--quiet'; if
1284
+ quiet: (bool/None) Whether or not the checkout should pass '--quiet'; if
1286
1285
  'None', the behavior is inferred from 'options.verbose'.
1287
1286
  Returns: (str) The output of the checkout operation
1288
1287
  """
@@ -1323,13 +1322,12 @@ class GitWrapper(SCMWrapper):
1323
1322
  fetch_cmd.append('--prune')
1324
1323
  if options.verbose:
1325
1324
  fetch_cmd.append('--verbose')
1325
+ if not hasattr(options, 'with_tags') or not options.with_tags:
1326
+ fetch_cmd.append('--no-tags')
1326
1327
  elif quiet:
1327
1328
  fetch_cmd.append('--quiet')
1328
1329
  self._Run(fetch_cmd, options, show_header=options.verbose, retry=True)
1329
1330
 
1330
- # Return the revision that was fetched; this will be stored in 'FETCH_HEAD'
1331
- return self._Capture(['rev-parse', '--verify', 'FETCH_HEAD'])
1332
-
1333
1331
  def _SetFetchConfig(self, options):
1334
1332
  """Adds, and optionally fetches, "branch-heads" and "tags" refspecs
1335
1333
  if requested."""
@@ -1359,25 +1357,48 @@ class GitWrapper(SCMWrapper):
1359
1357
  """Attempts to fetch |revision| if not available in local repo.
1360
1358
 
1361
1359
  Returns possibly updated revision."""
1362
- try:
1363
- self._Capture(['rev-parse', revision])
1364
- except subprocess2.CalledProcessError:
1360
+ if not scm.GIT.IsValidRevision(self.checkout_path, revision):
1365
1361
  self._Fetch(options, refspec=revision)
1366
1362
  revision = self._Capture(['rev-parse', 'FETCH_HEAD'])
1367
1363
  return revision
1368
1364
 
1369
- def _Run(self, args, options, show_header=True, **kwargs):
1365
+ def _IsRunningUnderRosetta(self):
1366
+ if sys.platform != 'darwin':
1367
+ return False
1368
+ if self._running_under_rosetta is None:
1369
+ # If we are running under Rosetta, platform.machine() is
1370
+ # 'x86_64'; we need to use a sysctl to see if we're being
1371
+ # translated.
1372
+ import ctypes
1373
+ libSystem = ctypes.CDLL("libSystem.dylib")
1374
+ ret = ctypes.c_int(0)
1375
+ size = ctypes.c_size_t(4)
1376
+ e = libSystem.sysctlbyname(ctypes.c_char_p(b'sysctl.proc_translated'),
1377
+ ctypes.byref(ret), ctypes.byref(size), None, 0)
1378
+ self._running_under_rosetta = e == 0 and ret.value == 1
1379
+ return self._running_under_rosetta
1380
+
1381
+ def _Run(self, args, options, **kwargs):
1370
1382
  # Disable 'unused options' warning | pylint: disable=unused-argument
1371
1383
  kwargs.setdefault('cwd', self.checkout_path)
1372
- kwargs.setdefault('stdout', self.out_fh)
1373
- kwargs['filter_fn'] = self.filter
1374
- kwargs.setdefault('print_stdout', False)
1384
+ kwargs.setdefault('filter_fn', self.filter)
1385
+ kwargs.setdefault('show_header', True)
1375
1386
  env = scm.GIT.ApplyEnvVars(kwargs)
1387
+
1376
1388
  cmd = ['git'] + args
1377
- if show_header:
1378
- gclient_utils.CheckCallAndFilterAndHeader(cmd, env=env, **kwargs)
1379
- else:
1380
- gclient_utils.CheckCallAndFilter(cmd, env=env, **kwargs)
1389
+
1390
+ if self._IsRunningUnderRosetta():
1391
+ # We currently only ship an Intel Python binary in depot_tools.
1392
+ # Intel binaries run under Rosetta on ARM Macs, and by default
1393
+ # prefer to run their subprocesses as Intel under Rosetta too.
1394
+ # Intel git running under Rosetta has a bug where it fails to
1395
+ # clone src.git (rdar://7868319), so until we ship a native
1396
+ # ARM python3 binary, explicitly use `arch` to let git run
1397
+ # the native ARM slice instead of the Intel slice.
1398
+ # TODO(thakis): Remove this again once we ship an arm64 python3
1399
+ # binary.
1400
+ cmd = ['arch', '-arch', 'arm64'] + cmd
1401
+ gclient_utils.CheckCallAndFilter(cmd, env=env, **kwargs)
1381
1402
 
1382
1403
 
1383
1404
  class CipdPackage(object):
@@ -1464,15 +1485,16 @@ class CipdRoot(object):
1464
1485
  @contextlib.contextmanager
1465
1486
  def _create_ensure_file(self):
1466
1487
  try:
1488
+ contents = '$ParanoidMode CheckPresence\n\n'
1489
+ for subdir, packages in sorted(self._packages_by_subdir.items()):
1490
+ contents += '@Subdir %s\n' % subdir
1491
+ for package in sorted(packages, key=lambda p: p.name):
1492
+ contents += '%s %s\n' % (package.name, package.version)
1493
+ contents += '\n'
1467
1494
  ensure_file = None
1468
1495
  with tempfile.NamedTemporaryFile(
1469
- suffix='.ensure', delete=False, mode='w') as ensure_file:
1470
- ensure_file.write('$ParanoidMode CheckPresence\n\n')
1471
- for subdir, packages in sorted(self._packages_by_subdir.items()):
1472
- ensure_file.write('@Subdir %s\n' % subdir)
1473
- for package in sorted(packages, key=lambda p: p.name):
1474
- ensure_file.write('%s %s\n' % (package.name, package.version))
1475
- ensure_file.write('\n')
1496
+ suffix='.ensure', delete=False, mode='wb') as ensure_file:
1497
+ ensure_file.write(contents.encode('utf-8', 'replace'))
1476
1498
  yield ensure_file.name
1477
1499
  finally:
1478
1500
  if ensure_file is not None and os.path.exists(ensure_file.name):
@@ -1488,7 +1510,8 @@ class CipdRoot(object):
1488
1510
  '-root', self.root_dir,
1489
1511
  '-ensure-file', ensure_file,
1490
1512
  ]
1491
- gclient_utils.CheckCallAndFilterAndHeader(cmd)
1513
+ gclient_utils.CheckCallAndFilter(
1514
+ cmd, print_stdout=True, show_header=True)
1492
1515
 
1493
1516
  def run(self, command):
1494
1517
  if command == 'update':
@@ -1573,8 +1596,7 @@ class CipdWrapper(SCMWrapper):
1573
1596
  '-version', self._package.version,
1574
1597
  '-json-output', describe_json_path
1575
1598
  ]
1576
- gclient_utils.CheckCallAndFilter(
1577
- cmd, filter_fn=lambda _line: None, print_stdout=False)
1599
+ gclient_utils.CheckCallAndFilter(cmd)
1578
1600
  with open(describe_json_path) as f:
1579
1601
  describe_json = json.load(f)
1580
1602
  return describe_json.get('result', {}).get('pin', {}).get('instance_id')