libv8 5.7.492.65.1 → 5.9.211.38.0beta0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (297) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +1 -0
  3. data/.travis.yml +8 -2
  4. data/CHANGELOG.md +4 -0
  5. data/README.md +4 -3
  6. data/Rakefile +27 -10
  7. data/ext/libv8/builder.rb +4 -0
  8. data/lib/libv8/version.rb +1 -1
  9. data/libv8.gemspec +1 -1
  10. data/patches/0001-Build-a-standalone-static-library.patch +5 -5
  11. data/patches/0002-Don-t-compile-unnecessary-stuff.patch +20 -24
  12. data/patches/0003-Use-the-fPIC-flag-for-the-static-library.patch +5 -5
  13. data/patches/0004-Do-not-embed-debug-symbols-in-macOS-libraries.patch +5 -5
  14. data/patches/0005-Fix-GCC-7-build-errors.patch +147 -0
  15. data/scaleway.png +0 -0
  16. data/vendor/depot_tools/.gitattributes +52 -0
  17. data/vendor/depot_tools/.gitignore +10 -0
  18. data/vendor/depot_tools/README.md +7 -3
  19. data/vendor/depot_tools/apply_issue.bat +4 -3
  20. data/vendor/depot_tools/apply_issue.py +0 -10
  21. data/vendor/depot_tools/autoninja +12 -0
  22. data/vendor/depot_tools/autoninja.bat +9 -0
  23. data/vendor/depot_tools/autoninja.py +70 -0
  24. data/vendor/depot_tools/bootstrap/win/README.md +108 -26
  25. data/vendor/depot_tools/bootstrap/win/git-bash.template.sh +3 -3
  26. data/vendor/depot_tools/bootstrap/win/git.template.bat +2 -2
  27. data/vendor/depot_tools/bootstrap/win/manifest.txt +18 -0
  28. data/vendor/depot_tools/bootstrap/win/manifest_bleeding_edge.txt +18 -0
  29. data/vendor/depot_tools/bootstrap/win/python27.new.bat +49 -0
  30. data/vendor/depot_tools/bootstrap/win/win_tools.bat +55 -59
  31. data/vendor/depot_tools/bootstrap/win/win_tools.py +335 -0
  32. data/vendor/depot_tools/cipd +16 -2
  33. data/vendor/depot_tools/cipd.bat +20 -2
  34. data/vendor/depot_tools/cipd.ps1 +36 -22
  35. data/vendor/depot_tools/cipd_bin_setup.bat +6 -0
  36. data/vendor/depot_tools/cipd_bin_setup.sh +10 -0
  37. data/vendor/depot_tools/cipd_client_version +1 -1
  38. data/vendor/depot_tools/cipd_manifest.txt +9 -0
  39. data/vendor/depot_tools/cit.bat +12 -11
  40. data/vendor/depot_tools/clang-format.bat +4 -3
  41. data/vendor/depot_tools/clang_format_merge_driver.bat +12 -11
  42. data/vendor/depot_tools/commit_queue.bat +4 -3
  43. data/vendor/depot_tools/cpplint.bat +9 -3
  44. data/vendor/depot_tools/cpplint.py +3 -3
  45. data/vendor/depot_tools/depot-tools-auth.bat +4 -3
  46. data/vendor/depot_tools/download_from_google_storage.bat +5 -3
  47. data/vendor/depot_tools/download_from_google_storage.py +6 -1
  48. data/vendor/depot_tools/fetch.bat +5 -4
  49. data/vendor/depot_tools/fetch.py +4 -5
  50. data/vendor/depot_tools/gclient-new-workdir.py +82 -46
  51. data/vendor/depot_tools/gclient.bat +5 -4
  52. data/vendor/depot_tools/gclient.py +713 -319
  53. data/vendor/depot_tools/gclient_eval.py +284 -0
  54. data/vendor/depot_tools/gclient_utils.py +70 -4
  55. data/vendor/depot_tools/gerrit_client.py +26 -1
  56. data/vendor/depot_tools/gerrit_util.py +120 -127
  57. data/vendor/depot_tools/git-crrev-parse +1 -0
  58. data/vendor/depot_tools/git-gs +1 -1
  59. data/vendor/depot_tools/git_cl.py +731 -415
  60. data/vendor/depot_tools/git_common.py +23 -3
  61. data/vendor/depot_tools/git_drover.py +10 -1
  62. data/vendor/depot_tools/git_footers.py +62 -22
  63. data/vendor/depot_tools/git_hyper_blame.py +3 -2
  64. data/vendor/depot_tools/git_map.py +30 -3
  65. data/vendor/depot_tools/git_map_branches.py +18 -4
  66. data/vendor/depot_tools/git_number.py +8 -2
  67. data/vendor/depot_tools/git_retry.py +21 -0
  68. data/vendor/depot_tools/gn.bat +4 -3
  69. data/vendor/depot_tools/infra/config/cq.cfg +1 -5
  70. data/vendor/depot_tools/infra/config/recipes.cfg +18 -16
  71. data/vendor/depot_tools/led +12 -0
  72. data/vendor/depot_tools/led.bat +7 -0
  73. data/vendor/depot_tools/man/html/git-cl.html +9 -1
  74. data/vendor/depot_tools/man/html/git-drover.html +22 -18
  75. data/vendor/depot_tools/man/man1/git-cl.1 +8 -3
  76. data/vendor/depot_tools/man/man1/git-drover.1 +22 -20
  77. data/vendor/depot_tools/man/src/git-cl.txt +3 -0
  78. data/vendor/depot_tools/man/src/git-drover.txt +8 -0
  79. data/vendor/depot_tools/my_activity.py +8 -5
  80. data/vendor/depot_tools/owners.py +103 -11
  81. data/vendor/depot_tools/owners_finder.py +14 -2
  82. data/vendor/depot_tools/presubmit_canned_checks.py +25 -67
  83. data/vendor/depot_tools/presubmit_support.py +87 -35
  84. data/vendor/depot_tools/recipes/OWNERS +2 -0
  85. data/vendor/depot_tools/recipes/README.recipes.md +842 -0
  86. data/vendor/depot_tools/recipes/recipe_modules/bot_update/__init__.py +5 -3
  87. data/vendor/depot_tools/recipes/recipe_modules/bot_update/api.py +181 -60
  88. data/vendor/depot_tools/recipes/recipe_modules/bot_update/{example.expected → examples/full.expected}/apply_gerrit_ref.json +4 -2
  89. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic.json +82 -0
  90. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/basic_with_branch_heads.json +149 -0
  91. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/buildbot.json +82 -0
  92. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/clobber.json +149 -0
  93. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/deprecated_got_revision_mapping.json +122 -0
  94. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_rebase_patch_ref.json +149 -0
  95. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/gerrit_no_reset.json +149 -0
  96. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/no_shallow.json +149 -0
  97. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/reset_root_solution_revision.json +148 -0
  98. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/trychange.json +150 -0
  99. data/vendor/depot_tools/recipes/recipe_modules/bot_update/{example.expected → examples/full.expected}/trychange_oauth2.json +0 -0
  100. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/trychange_oauth2_buildbot.json +152 -0
  101. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/trychange_oauth2_json.json +150 -0
  102. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/trychange_oauth2_json_win.json +150 -0
  103. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob.json +156 -0
  104. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail.json +91 -0
  105. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch.json +118 -0
  106. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_fail_patch_download.json +118 -0
  107. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_angle.json +202 -0
  108. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_angle_deprecated.json +158 -0
  109. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_feature_branch.json +196 -0
  110. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_v8.json +202 -0
  111. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_gerrit_v8_feature_branch.json +202 -0
  112. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8.json +162 -0
  113. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/tryjob_v8_head_by_default.json +162 -0
  114. data/vendor/depot_tools/recipes/recipe_modules/bot_update/examples/full.expected/with_tags.json +149 -0
  115. data/vendor/depot_tools/recipes/recipe_modules/bot_update/{example.py → examples/full.py} +46 -8
  116. data/vendor/depot_tools/recipes/recipe_modules/bot_update/resources/bot_update.py +139 -133
  117. data/vendor/depot_tools/recipes/recipe_modules/bot_update/test_api.py +25 -13
  118. data/vendor/depot_tools/recipes/recipe_modules/cipd/api.py +40 -9
  119. data/vendor/depot_tools/recipes/recipe_modules/cipd/{example.expected → examples/full.expected}/basic.json +0 -0
  120. data/vendor/depot_tools/recipes/recipe_modules/cipd/{example.expected → examples/full.expected}/basic_pkg.json +1 -1
  121. data/vendor/depot_tools/recipes/recipe_modules/cipd/{example.expected → examples/full.expected}/describe-failed.json +0 -0
  122. data/vendor/depot_tools/recipes/recipe_modules/cipd/{example.expected → examples/full.expected}/describe-many-instances.json +0 -0
  123. data/vendor/depot_tools/recipes/recipe_modules/cipd/{example.expected → examples/full.expected}/mac64.json +0 -0
  124. data/vendor/depot_tools/recipes/recipe_modules/cipd/{example.expected → examples/full.expected}/pkg_bad_file.json +1 -1
  125. data/vendor/depot_tools/recipes/recipe_modules/cipd/{example.expected → examples/full.expected}/pkg_bad_mode.json +0 -0
  126. data/vendor/depot_tools/recipes/recipe_modules/cipd/{example.expected → examples/full.expected}/pkg_bad_verfile.json +0 -0
  127. data/vendor/depot_tools/recipes/recipe_modules/cipd/{example.expected → examples/full.expected}/win64.json +0 -0
  128. data/vendor/depot_tools/recipes/recipe_modules/cipd/{example.py → examples/full.py} +1 -0
  129. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk arch.json +7 -0
  130. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/junk bits.json +7 -0
  131. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_32.json +14 -0
  132. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_arm_64.json +14 -0
  133. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_32.json +14 -0
  134. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_intel_64.json +14 -0
  135. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/linux_mips_64.json +14 -0
  136. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/mac_intel_64.json +14 -0
  137. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_32.json +14 -0
  138. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.expected/win_intel_64.json +14 -0
  139. data/vendor/depot_tools/recipes/recipe_modules/cipd/examples/platform_suffix.py +59 -0
  140. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/api.py +5 -0
  141. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/{example.expected → examples/full.expected}/basic.json +7 -0
  142. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/{example.expected → examples/full.expected}/win.json +7 -0
  143. data/vendor/depot_tools/recipes/recipe_modules/depot_tools/{example.py → examples/full.py} +2 -0
  144. data/vendor/depot_tools/recipes/recipe_modules/gclient/__init__.py +1 -4
  145. data/vendor/depot_tools/recipes/recipe_modules/gclient/api.py +28 -14
  146. data/vendor/depot_tools/recipes/recipe_modules/gclient/config.py +10 -235
  147. data/vendor/depot_tools/recipes/recipe_modules/gclient/{example.expected → examples/full.expected}/basic.json +9 -9
  148. data/vendor/depot_tools/recipes/recipe_modules/gclient/{example.expected → examples/full.expected}/buildbot.json +9 -9
  149. data/vendor/depot_tools/recipes/recipe_modules/gclient/{example.expected → examples/full.expected}/revision.json +9 -9
  150. data/vendor/depot_tools/recipes/recipe_modules/gclient/{example.expected → examples/full.expected}/tryserver.json +9 -9
  151. data/vendor/depot_tools/recipes/recipe_modules/gclient/{example.py → examples/full.py} +5 -21
  152. data/vendor/depot_tools/recipes/recipe_modules/gclient/tests/patch_project.py +45 -0
  153. data/vendor/depot_tools/recipes/recipe_modules/gerrit/__init__.py +1 -0
  154. data/vendor/depot_tools/recipes/recipe_modules/gerrit/api.py +97 -2
  155. data/vendor/depot_tools/recipes/recipe_modules/gerrit/examples/full.expected/basic.json +283 -0
  156. data/vendor/depot_tools/recipes/recipe_modules/gerrit/{example.py → examples/full.py} +31 -2
  157. data/vendor/depot_tools/recipes/recipe_modules/gerrit/test_api.py +30 -1
  158. data/vendor/depot_tools/recipes/recipe_modules/git/__init__.py +1 -4
  159. data/vendor/depot_tools/recipes/recipe_modules/git/api.py +7 -35
  160. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/basic.json +3 -3
  161. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/basic_branch.json +3 -3
  162. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/basic_file_name.json +3 -3
  163. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/basic_hash.json +3 -3
  164. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/basic_ref.json +3 -3
  165. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/basic_submodule_update_force.json +3 -3
  166. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/can_fail_build.json +1 -1
  167. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/cannot_fail_build.json +3 -3
  168. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/cat-file_test.json +3 -3
  169. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/count-objects_delta.json +3 -3
  170. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/count-objects_failed.json +3 -3
  171. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/count-objects_with_bad_output.json +3 -3
  172. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/count-objects_with_bad_output_fails_build.json +1 -1
  173. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/curl_trace_file.json +3 -3
  174. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/git-cache-checkout.json +6 -6
  175. data/vendor/depot_tools/recipes/recipe_modules/git/examples/full.expected/platform_win.json +223 -0
  176. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/rebase_failed.json +3 -3
  177. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/remote_not_origin.json +3 -3
  178. data/vendor/depot_tools/recipes/recipe_modules/git/{example.expected → examples/full.expected}/set_got_revision.json +3 -3
  179. data/vendor/depot_tools/recipes/recipe_modules/git/{example.py → examples/full.py} +2 -1
  180. data/vendor/depot_tools/recipes/recipe_modules/git/resources/git_setup.py +12 -21
  181. data/vendor/depot_tools/recipes/recipe_modules/git_cl/__init__.py +1 -4
  182. data/vendor/depot_tools/recipes/recipe_modules/git_cl/api.py +13 -11
  183. data/vendor/depot_tools/recipes/recipe_modules/git_cl/{example.expected → examples/full.expected}/basic.json +0 -0
  184. data/vendor/depot_tools/recipes/recipe_modules/git_cl/{example.py → examples/full.py} +4 -2
  185. data/vendor/depot_tools/recipes/recipe_modules/gitiles/OWNERS +3 -0
  186. data/vendor/depot_tools/recipes/recipe_modules/gitiles/__init__.py +7 -0
  187. data/vendor/depot_tools/recipes/recipe_modules/gitiles/api.py +135 -0
  188. data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.expected/basic.json +537 -0
  189. data/vendor/depot_tools/recipes/recipe_modules/gitiles/examples/full.py +61 -0
  190. data/vendor/depot_tools/recipes/recipe_modules/gitiles/resources/gerrit_client.py +192 -0
  191. data/vendor/depot_tools/recipes/recipe_modules/gitiles/test_api.py +95 -0
  192. data/vendor/depot_tools/recipes/recipe_modules/gsutil/{example.expected → examples/full.expected}/basic.json +0 -0
  193. data/vendor/depot_tools/recipes/recipe_modules/gsutil/{example.py → examples/full.py} +0 -0
  194. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/__init__.py +0 -3
  195. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/{example.expected → examples/full.expected}/basic.json +3 -2
  196. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/{example.expected → examples/full.expected}/paths_buildbot_linux.json +3 -2
  197. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/{example.expected → examples/full.expected}/paths_buildbot_mac.json +3 -2
  198. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/{example.expected → examples/full.expected}/paths_buildbot_win.json +3 -2
  199. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/{example.expected → examples/full.expected}/paths_generic_linux.json +3 -2
  200. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/{example.expected → examples/full.expected}/paths_generic_mac.json +3 -2
  201. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_generic_win.json +16 -0
  202. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_linux.json +16 -0
  203. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_mac.json +16 -0
  204. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/examples/full.expected/paths_kitchen_win.json +16 -0
  205. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/{example.py → examples/full.py} +2 -1
  206. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/path_config.py +12 -3
  207. data/vendor/depot_tools/recipes/recipe_modules/presubmit/__init__.py +1 -0
  208. data/vendor/depot_tools/recipes/recipe_modules/presubmit/api.py +2 -2
  209. data/vendor/depot_tools/recipes/recipe_modules/presubmit/{example.expected → examples/full.expected}/basic.json +1 -1
  210. data/vendor/depot_tools/recipes/recipe_modules/presubmit/{example.py → examples/full.py} +0 -0
  211. data/vendor/depot_tools/recipes/recipe_modules/rietveld/__init__.py +0 -4
  212. data/vendor/depot_tools/recipes/recipe_modules/rietveld/{example.expected → examples/full.expected}/basic.json +0 -0
  213. data/vendor/depot_tools/recipes/recipe_modules/rietveld/{example.expected → examples/full.expected}/buildbot.json +0 -0
  214. data/vendor/depot_tools/recipes/recipe_modules/rietveld/examples/full.expected/no_auth.json +27 -0
  215. data/vendor/depot_tools/recipes/recipe_modules/rietveld/{example.py → examples/full.py} +9 -1
  216. data/vendor/depot_tools/recipes/recipe_modules/tryserver/__init__.py +3 -5
  217. data/vendor/depot_tools/recipes/recipe_modules/tryserver/api.py +21 -96
  218. data/vendor/depot_tools/recipes/recipe_modules/tryserver/{example.expected → examples/full.expected}/basic_tags.json +0 -0
  219. data/vendor/depot_tools/recipes/recipe_modules/tryserver/{example.expected → examples/full.expected}/set_failure_hash_with_no_steps.json +0 -0
  220. data/vendor/depot_tools/recipes/recipe_modules/tryserver/examples/full.expected/with_gerrit_patch.json +56 -0
  221. data/vendor/depot_tools/recipes/recipe_modules/tryserver/{example.expected/with_gerrit_patch_deprecated.json → examples/full.expected/with_git_patch.json} +2 -2
  222. data/vendor/depot_tools/recipes/recipe_modules/tryserver/{example.expected/with_gerrit_patch.json → examples/full.expected/with_git_patch_luci.json} +2 -2
  223. data/vendor/depot_tools/recipes/recipe_modules/tryserver/{example.expected → examples/full.expected}/with_rietveld_patch.json +0 -20
  224. data/vendor/depot_tools/recipes/recipe_modules/tryserver/{example.expected → examples/full.expected}/with_rietveld_patch_new.json +0 -20
  225. data/vendor/depot_tools/recipes/recipe_modules/tryserver/{example.expected → examples/full.expected}/with_wrong_patch.json +1 -13
  226. data/vendor/depot_tools/recipes/recipe_modules/tryserver/{example.expected → examples/full.expected}/with_wrong_patch_new.json +1 -13
  227. data/vendor/depot_tools/recipes/recipe_modules/tryserver/{example.py → examples/full.py} +3 -17
  228. data/vendor/depot_tools/recipes/recipes.py +141 -96
  229. data/vendor/depot_tools/rietveld.py +8 -1
  230. data/vendor/depot_tools/roll-dep-svn.bat +12 -10
  231. data/vendor/depot_tools/roll-dep.bat +5 -3
  232. data/vendor/depot_tools/scm.py +8 -1
  233. data/vendor/depot_tools/setup_color.py +0 -0
  234. data/vendor/depot_tools/split_cl.py +193 -0
  235. data/vendor/depot_tools/third_party/schema/.editorconfig +15 -0
  236. data/vendor/depot_tools/third_party/schema/.gitignore +174 -0
  237. data/vendor/depot_tools/third_party/schema/.travis.yml +37 -0
  238. data/vendor/depot_tools/third_party/schema/LICENSE-MIT +19 -0
  239. data/vendor/depot_tools/third_party/schema/MANIFEST.in +1 -0
  240. data/vendor/depot_tools/third_party/schema/README.chromium +12 -0
  241. data/vendor/depot_tools/third_party/schema/README.rst +382 -0
  242. data/vendor/depot_tools/third_party/schema/__init__.py +1 -0
  243. data/vendor/depot_tools/third_party/schema/schema.py +338 -0
  244. data/vendor/depot_tools/third_party/schema/setup.cfg +5 -0
  245. data/vendor/depot_tools/third_party/schema/setup.py +30 -0
  246. data/vendor/depot_tools/third_party/schema/test_schema.py +556 -0
  247. data/vendor/depot_tools/third_party/schema/tox.ini +33 -0
  248. data/vendor/depot_tools/third_party/upload.py +4 -0
  249. data/vendor/depot_tools/update_depot_tools +4 -16
  250. data/vendor/depot_tools/update_depot_tools.bat +4 -17
  251. data/vendor/depot_tools/update_depot_tools_toggle.py +38 -0
  252. data/vendor/depot_tools/vpython +12 -0
  253. data/vendor/depot_tools/vpython.bat +7 -0
  254. data/vendor/depot_tools/win_toolchain/get_toolchain_if_necessary.py +17 -5
  255. data/vendor/depot_tools/win_toolchain/package_from_installed.py +63 -33
  256. metadata +161 -113
  257. data/vendor/depot_tools/bootstrap/gclient.bat +0 -22
  258. data/vendor/depot_tools/bootstrap/win/get_file.js +0 -119
  259. data/vendor/depot_tools/bootstrap/win/git_bootstrap.py +0 -193
  260. data/vendor/depot_tools/bootstrap/win/git_version.txt +0 -1
  261. data/vendor/depot_tools/bootstrap/win/git_version_bleeding_edge.txt +0 -1
  262. data/vendor/depot_tools/bootstrap/win/python276.new.bat +0 -8
  263. data/vendor/depot_tools/bootstrap/win/svn.new.bat +0 -4
  264. data/vendor/depot_tools/bootstrap/win/svnversion.new.bat +0 -4
  265. data/vendor/depot_tools/bootstrap/win/unzip.js +0 -91
  266. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/basic.json +0 -53
  267. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/basic_output_manifest.json +0 -60
  268. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/basic_with_branch_heads.json +0 -54
  269. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/buildbot.json +0 -53
  270. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/clobber.json +0 -54
  271. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/gerrit_no_rebase_patch_ref.json +0 -54
  272. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/gerrit_no_reset.json +0 -54
  273. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/no_shallow.json +0 -54
  274. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/reset_root_solution_revision.json +0 -53
  275. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/trychange.json +0 -55
  276. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/trychange_oauth2_buildbot.json +0 -57
  277. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/trychange_oauth2_json.json +0 -55
  278. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/trychange_oauth2_json_win.json +0 -55
  279. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/tryjob.json +0 -59
  280. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/tryjob_fail.json +0 -62
  281. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/tryjob_fail_patch.json +0 -83
  282. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/tryjob_fail_patch_download.json +0 -84
  283. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/tryjob_gerrit_angle.json +0 -60
  284. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/tryjob_gerrit_angle_deprecated.json +0 -60
  285. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/tryjob_v8.json +0 -62
  286. data/vendor/depot_tools/recipes/recipe_modules/bot_update/example.expected/tryjob_v8_head_by_default.json +0 -62
  287. data/vendor/depot_tools/recipes/recipe_modules/gclient/bundle_extra_paths.txt +0 -4
  288. data/vendor/depot_tools/recipes/recipe_modules/gerrit/example.expected/basic.json +0 -66
  289. data/vendor/depot_tools/recipes/recipe_modules/git/bundle_extra_paths.txt +0 -28
  290. data/vendor/depot_tools/recipes/recipe_modules/git/example.expected/platform_win.json +0 -237
  291. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/example.expected/paths_generic_win.json +0 -15
  292. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/example.expected/paths_kitchen_linux.json +0 -15
  293. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/example.expected/paths_kitchen_mac.json +0 -15
  294. data/vendor/depot_tools/recipes/recipe_modules/infra_paths/example.expected/paths_kitchen_win.json +0 -15
  295. data/vendor/depot_tools/recipes/recipe_modules/presubmit/bundle_extra_paths.txt +0 -30
  296. data/vendor/depot_tools/recipes/recipe_modules/tryserver/example.expected/with_git_patch.json +0 -109
  297. data/vendor/depot_tools/recipes/recipe_modules/tryserver/example.expected/with_git_patch_luci.json +0 -8
@@ -0,0 +1,12 @@
1
+ #!/bin/bash
2
+
3
+ # Copyright 2017 The Chromium Authors. All rights reserved.
4
+ # Use of this source code is governed by a BSD-style license that can be
5
+ # found in the LICENSE file.
6
+
7
+ MYPATH=$(dirname "${BASH_SOURCE[0]}")
8
+
9
+ source "$MYPATH/cipd_bin_setup.sh"
10
+ cipd_bin_setup
11
+
12
+ exec "$MYPATH/.cipd_bin/led" "$@"
@@ -0,0 +1,7 @@
1
+ @echo off
2
+ :: Copyright 2017 The Chromium Authors. All rights reserved.
3
+ :: Use of this source code is governed by a BSD-style license that can be
4
+ :: found in the LICENSE file.
5
+
6
+ call "%~dp0\cipd_bin_setup.bat"
7
+ "%~dp0\.cipd_bin\led.exe" %*
@@ -917,6 +917,14 @@ set-commit
917
917
  </p>
918
918
  </dd>
919
919
  <dt class="hdlist1">
920
+ split
921
+ </dt>
922
+ <dd>
923
+ <p>
924
+ splits a branch into smaller branches and uploads CLs
925
+ </p>
926
+ </dd>
927
+ <dt class="hdlist1">
920
928
  status
921
929
  </dt>
922
930
  <dd>
@@ -1018,7 +1026,7 @@ from <a href="https://chromium.googlesource.com/chromium/tools/depot_tools.git">
1018
1026
  <div id="footnotes"><hr /></div>
1019
1027
  <div id="footer">
1020
1028
  <div id="footer-text">
1021
- Last updated 2017-02-27 13:47:35 PST
1029
+ Last updated 2017-06-21 09:37:12 PDT
1022
1030
  </div>
1023
1031
  </div>
1024
1032
  </body>
@@ -858,7 +858,7 @@ at least once to fetch the branches.</p></div>
858
858
  <h4 id="_merge_example">Merge Example</h4>
859
859
  <div class="paragraph"><p></p></div><div class="listingblock"><div class="content"><pre><code># Here's a commit (from some.committer) that we want to 'drover'.
860
860
  <span style="font-weight: bold; color: #ffffff">$ git log -n 1 --pretty=fuller</span>
861
- <span style="color: #e7e71c">commit 3b3f7e1631a521457357228c2048e647c60e67bd</span>
861
+ <span style="color: #e7e71c">commit c4c505c80a710432a95089cd7dca83e801bd3787</span>
862
862
  Author: some.committer &lt;some.committer@chromium.org&gt;
863
863
  AuthorDate: Thu Apr 10 08:54:46 2014 +0000
864
864
  Commit: some.committer &lt;some.committer@chromium.org&gt;
@@ -867,10 +867,10 @@ CommitDate: Thu Apr 10 08:54:46 2014 +0000
867
867
  This change needs to go to branch 9999
868
868
 
869
869
  # Now do the 'drover'.
870
- <span style="font-weight: bold; color: #ffffff">$ git drover --branch 9999 --cherry-pick 3b3f7e1631a521457357228c2048e647c60e67bd</span>
870
+ <span style="font-weight: bold; color: #ffffff">$ git drover --branch 9999 --cherry-pick c4c505c80a710432a95089cd7dca83e801bd3787</span>
871
871
  Going to cherry-pick
872
872
  """
873
- <span style="color: #e7e71c">commit 3b3f7e1631a521457357228c2048e647c60e67bd</span>
873
+ <span style="color: #e7e71c">commit c4c505c80a710432a95089cd7dca83e801bd3787</span>
874
874
  Author: some.committer &lt;some.committer@chromium.org&gt;
875
875
  Date: Thu Apr 10 08:54:46 2014 +0000
876
876
 
@@ -888,7 +888,7 @@ About to land on 9999. Continue (y/n)? y
888
888
  <h4 id="_merge_with_conflicts_example">Merge with Conflicts Example</h4>
889
889
  <div class="paragraph"><p></p></div><div class="listingblock"><div class="content"><pre><code># Here's a commit (from some.committer) that we want to 'drover'.
890
890
  <span style="font-weight: bold; color: #ffffff">$ git log -n 1 --pretty=fuller</span>
891
- <span style="color: #e7e71c">commit 28f2d8f22642366b09afa8ea2d4ef6ea6de2f662</span>
891
+ <span style="color: #e7e71c">commit 1bf3c1360a47ee7db9ab3a1960bada575652ab18</span>
892
892
  Author: some.committer &lt;some.committer@chromium.org&gt;
893
893
  AuthorDate: Thu Apr 10 08:54:46 2014 +0000
894
894
  Commit: some.committer &lt;some.committer@chromium.org&gt;
@@ -897,10 +897,10 @@ CommitDate: Thu Apr 10 08:54:46 2014 +0000
897
897
  This change needs to go to branch 9999
898
898
 
899
899
  # Now do the 'drover'.
900
- <span style="font-weight: bold; color: #ffffff">$ git drover --branch 9999 --cherry-pick 28f2d8f22642366b09afa8ea2d4ef6ea6de2f662</span>
900
+ <span style="font-weight: bold; color: #ffffff">$ git drover --branch 9999 --cherry-pick 1bf3c1360a47ee7db9ab3a1960bada575652ab18</span>
901
901
  Going to cherry-pick
902
902
  """
903
- <span style="color: #e7e71c">commit 28f2d8f22642366b09afa8ea2d4ef6ea6de2f662</span>
903
+ <span style="color: #e7e71c">commit 1bf3c1360a47ee7db9ab3a1960bada575652ab18</span>
904
904
  Author: some.committer &lt;some.committer@chromium.org&gt;
905
905
  Date: Thu Apr 10 08:54:46 2014 +0000
906
906
 
@@ -942,30 +942,32 @@ Branch drover_9999 set up to track remote ref refs/branch-heads/9999.
942
942
 
943
943
  # Here's the commit we want to revert.
944
944
  <span style="font-weight: bold; color: #ffffff">$ git log -n 1</span>
945
- <span style="color: #e7e71c">commit 302334dbd2dca060814ffd3567808f2beafbf647</span>
945
+ <span style="color: #e7e71c">commit 62b99a198636d608dd761b8f87714627154dbd34</span>
946
946
  Author: some.committer &lt;some.committer@chromium.org&gt;
947
947
  Date: Thu Apr 10 08:54:46 2014 +0000
948
948
 
949
949
  This change is horribly broken.
950
950
 
951
951
  # Now do the revert.
952
- <span style="font-weight: bold; color: #ffffff">$ git revert 302334dbd2dca060814ffd3567808f2beafbf647</span>
952
+ <span style="font-weight: bold; color: #ffffff">$ git revert 62b99a198636d608dd761b8f87714627154dbd34</span>
953
953
 
954
954
  # That reverted the change and committed the revert.
955
955
  <span style="font-weight: bold; color: #ffffff">$ git log -n 1</span>
956
- <span style="color: #e7e71c">commit dd4742441d71cf2b8f403ff9ca819b3201de3c5b</span>
956
+ <span style="color: #e7e71c">commit 5ae4e652a29fd78de0ef0a9560878e5ae95c6c82</span>
957
957
  Author: you &lt;you@chromium.org&gt;
958
958
  Date: Thu Apr 10 09:11:36 2014 +0000
959
959
 
960
960
  Revert "This change is horribly broken."
961
961
 
962
- This reverts commit 302334dbd2dca060814ffd3567808f2beafbf647.
962
+ This reverts commit 62b99a198636d608dd761b8f87714627154dbd34.
963
963
 
964
964
  # As with old drover, reverts are generally OK to commit without LGTM.
965
965
  <span style="font-weight: bold; color: #ffffff">$ git cl upload -r some.committer@chromium.org --send-mail</span>
966
966
  <span style="font-weight: bold; color: #ffffff">$ git cl land --bypass-hooks</span>
967
- Using 50% similarity for rename/copy detection. Override with --similarity.
968
967
  </code></pre></div></div><p><div class="paragraph"></p></div>
968
+ <div class="paragraph"><p>If your cherrypick onto a release branch gets reverted, do not create a new
969
+ cherrypick from master onto that release branch. Instead, use the "Reland"
970
+ button on the original cherrypick CL.</p></div>
969
971
  </div>
970
972
  <div class="sect3">
971
973
  <h4 id="_manual_merge_example">Manual Merge Example</h4>
@@ -974,7 +976,7 @@ Using 50% similarity for rename/copy detection. Override with --similarity.
974
976
 
975
977
  # Here's a commit (from some.committer) that we want to 'drover'.
976
978
  <span style="font-weight: bold; color: #ffffff">$ git log -n 1 --pretty=fuller</span>
977
- <span style="color: #e7e71c">commit 441c947b3ff6e1d6b9036d67926011fbea92724f</span>
979
+ <span style="color: #e7e71c">commit 91ee663980fecd3bb7d6e8e166458e84b4e02d99</span>
978
980
  Author: some.committer &lt;some.committer@chromium.org&gt;
979
981
  AuthorDate: Thu Apr 10 08:54:46 2014 +0000
980
982
  Commit: some.committer &lt;some.committer@chromium.org&gt;
@@ -988,8 +990,8 @@ Branch drover_9999 set up to track remote ref refs/branch-heads/9999.
988
990
 
989
991
  # Now do the 'drover'.
990
992
  # IMPORTANT!!! Do Not leave off the '-x' flag
991
- <span style="font-weight: bold; color: #ffffff">$ git cherry-pick -x 441c947b3ff6e1d6b9036d67926011fbea92724f</span>
992
- [drover_9999 c7b0d40] This change needs to go to branch 9999
993
+ <span style="font-weight: bold; color: #ffffff">$ git cherry-pick -x 91ee663980fecd3bb7d6e8e166458e84b4e02d99</span>
994
+ [drover_9999 73a5705] This change needs to go to branch 9999
993
995
  Author: some.committer &lt;some.committer@chromium.org&gt;
994
996
  Date: Thu Apr 10 08:54:46 2014 +0000
995
997
  1 file changed, 1 insertion(+)
@@ -998,7 +1000,7 @@ Branch drover_9999 set up to track remote ref refs/branch-heads/9999.
998
1000
  # That took the code authored by some.committer and committed it to
999
1001
  # the branch by the person who drovered it (i.e. you).
1000
1002
  <span style="font-weight: bold; color: #ffffff">$ git log -n 1 --pretty=fuller</span>
1001
- <span style="color: #e7e71c">commit c7b0d40c9f5793a27043688183a48597e656adcc</span>
1003
+ <span style="color: #e7e71c">commit 73a5705417e67c31f93d27fdee8240204082b5ef</span>
1002
1004
  Author: some.committer &lt;some.committer@chromium.org&gt;
1003
1005
  AuthorDate: Thu Apr 10 08:54:46 2014 +0000
1004
1006
  Commit: you &lt;you@chromium.org&gt;
@@ -1006,15 +1008,17 @@ CommitDate: Thu Apr 10 09:11:36 2014 +0000
1006
1008
 
1007
1009
  This change needs to go to branch 9999
1008
1010
 
1009
- (cherry picked from commit 441c947b3ff6e1d6b9036d67926011fbea92724f)
1011
+ (cherry picked from commit 91ee663980fecd3bb7d6e8e166458e84b4e02d99)
1010
1012
 
1011
1013
  # Looks good. Ship it!
1012
1014
  <span style="font-weight: bold; color: #ffffff">$ git cl upload</span>
1013
1015
  # Wait for LGTM or TBR it.
1014
1016
  <span style="font-weight: bold; color: #ffffff">$ git cl land</span>
1015
- Using 50% similarity for rename/copy detection. Override with --similarity.
1016
1017
  # Or skip the LGTM/TBR and just 'git cl land --bypass-hooks'
1017
1018
  </code></pre></div></div><p><div class="paragraph"></p></div>
1019
+ <div class="paragraph"><p>If <code>git cl upload</code> errors out, the branch you&#8217;re uploading to probably has a CL
1020
+ with the same Change-Id. Instead of cherry-picking manually, use the Reland
1021
+ button in the Gerrit UI to create a new CL, and patch that CL into your client.</p></div>
1018
1022
  </div>
1019
1023
  </div>
1020
1024
  </div>
@@ -1037,7 +1041,7 @@ from <a href="https://chromium.googlesource.com/chromium/tools/depot_tools.git">
1037
1041
  <div id="footnotes"><hr /></div>
1038
1042
  <div id="footer">
1039
1043
  <div id="footer-text">
1040
- Last updated 2016-12-15 15:36:52 PST
1044
+ Last updated 2017-06-21 09:37:12 PDT
1041
1045
  </div>
1042
1046
  </div>
1043
1047
  </body>
@@ -2,12 +2,12 @@
2
2
  .\" Title: git-cl
3
3
  .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
4
4
  .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
5
- .\" Date: 02/27/2017
5
+ .\" Date: 06/21/2017
6
6
  .\" Manual: Chromium depot_tools Manual
7
- .\" Source: depot_tools a6ba28f5
7
+ .\" Source: depot_tools 0867192e
8
8
  .\" Language: English
9
9
  .\"
10
- .TH "GIT\-CL" "1" "02/27/2017" "depot_tools a6ba28f5" "Chromium depot_tools Manual"
10
+ .TH "GIT\-CL" "1" "06/21/2017" "depot_tools 0867192e" "Chromium depot_tools Manual"
11
11
  .\" -----------------------------------------------------------------
12
12
  .\" * Define some portability stuff
13
13
  .\" -----------------------------------------------------------------
@@ -132,6 +132,11 @@ set\-commit
132
132
  sets the commit bit to trigger the Commit Queue
133
133
  .RE
134
134
  .PP
135
+ split
136
+ .RS 4
137
+ splits a branch into smaller branches and uploads CLs
138
+ .RE
139
+ .PP
135
140
  status
136
141
  .RS 4
137
142
  show status of changelists
@@ -2,12 +2,12 @@
2
2
  .\" Title: git-drover
3
3
  .\" Author: [FIXME: author] [see http://docbook.sf.net/el/author]
4
4
  .\" Generator: DocBook XSL Stylesheets v1.78.1 <http://docbook.sf.net/>
5
- .\" Date: 12/15/2016
5
+ .\" Date: 06/21/2017
6
6
  .\" Manual: Chromium depot_tools Manual
7
- .\" Source: depot_tools f72f1ad
7
+ .\" Source: depot_tools 0867192e
8
8
  .\" Language: English
9
9
  .\"
10
- .TH "GIT\-DROVER" "1" "12/15/2016" "depot_tools f72f1ad" "Chromium depot_tools Manual"
10
+ .TH "GIT\-DROVER" "1" "06/21/2017" "depot_tools 0867192e" "Chromium depot_tools Manual"
11
11
  .\" -----------------------------------------------------------------
12
12
  .\" * Define some portability stuff
13
13
  .\" -----------------------------------------------------------------
@@ -101,7 +101,7 @@ Before working with branches, you must \fIgclient sync \-\-with_branch_heads\fR
101
101
  .nf
102
102
  # Here\*(Aqs a commit (from some\&.committer) that we want to \*(Aqdrover\*(Aq\&.
103
103
  \fB$ git log \-n 1 \-\-pretty=fuller\fR
104
- commit 067e08ebd511040fa9d5350da54112300d9c1801
104
+ commit 386bdd1dc15d367d7c33aa5d2ae5d10eb4b278bf
105
105
  Author: some\&.committer <some\&.committer@chromium\&.org>
106
106
  AuthorDate: Thu Apr 10 08:54:46 2014 +0000
107
107
  Commit: some\&.committer <some\&.committer@chromium\&.org>
@@ -110,10 +110,10 @@ CommitDate: Thu Apr 10 08:54:46 2014 +0000
110
110
  This change needs to go to branch 9999
111
111
 
112
112
  # Now do the \*(Aqdrover\*(Aq\&.
113
- \fB$ git drover \-\-branch 9999 \-\-cherry\-pick 067e08ebd511040fa9d5350da54112300d9c1801\fR
113
+ \fB$ git drover \-\-branch 9999 \-\-cherry\-pick 386bdd1dc15d367d7c33aa5d2ae5d10eb4b278bf\fR
114
114
  Going to cherry\-pick
115
115
  """
116
- commit 067e08ebd511040fa9d5350da54112300d9c1801
116
+ commit 386bdd1dc15d367d7c33aa5d2ae5d10eb4b278bf
117
117
  Author: some\&.committer <some\&.committer@chromium\&.org>
118
118
  Date: Thu Apr 10 08:54:46 2014 +0000
119
119
 
@@ -148,7 +148,7 @@ About to land on 9999\&. Continue (y/n)? y
148
148
  .nf
149
149
  # Here\*(Aqs a commit (from some\&.committer) that we want to \*(Aqdrover\*(Aq\&.
150
150
  \fB$ git log \-n 1 \-\-pretty=fuller\fR
151
- commit e4fdcfa1a16c8b7265fb74a20cd029aa75cecaa8
151
+ commit 870faa8f7621b82b98e2e9a29056dff1fbf6b713
152
152
  Author: some\&.committer <some\&.committer@chromium\&.org>
153
153
  AuthorDate: Thu Apr 10 08:54:46 2014 +0000
154
154
  Commit: some\&.committer <some\&.committer@chromium\&.org>
@@ -157,10 +157,10 @@ CommitDate: Thu Apr 10 08:54:46 2014 +0000
157
157
  This change needs to go to branch 9999
158
158
 
159
159
  # Now do the \*(Aqdrover\*(Aq\&.
160
- \fB$ git drover \-\-branch 9999 \-\-cherry\-pick e4fdcfa1a16c8b7265fb74a20cd029aa75cecaa8\fR
160
+ \fB$ git drover \-\-branch 9999 \-\-cherry\-pick 870faa8f7621b82b98e2e9a29056dff1fbf6b713\fR
161
161
  Going to cherry\-pick
162
162
  """
163
- commit e4fdcfa1a16c8b7265fb74a20cd029aa75cecaa8
163
+ commit 870faa8f7621b82b98e2e9a29056dff1fbf6b713
164
164
  Author: some\&.committer <some\&.committer@chromium\&.org>
165
165
  Date: Thu Apr 10 08:54:46 2014 +0000
166
166
 
@@ -219,34 +219,35 @@ Branch drover_9999 set up to track remote ref refs/branch\-heads/9999\&.
219
219
 
220
220
  # Here\*(Aqs the commit we want to revert\&.
221
221
  \fB$ git log \-n 1\fR
222
- commit 00b47037e6732455c6b90f8800f4ffe5fbe7326d
222
+ commit 7066f3820fe39e50400b9d406a394117f807538e
223
223
  Author: some\&.committer <some\&.committer@chromium\&.org>
224
224
  Date: Thu Apr 10 08:54:46 2014 +0000
225
225
 
226
226
  This change is horribly broken\&.
227
227
 
228
228
  # Now do the revert\&.
229
- \fB$ git revert 00b47037e6732455c6b90f8800f4ffe5fbe7326d\fR
229
+ \fB$ git revert 7066f3820fe39e50400b9d406a394117f807538e\fR
230
230
 
231
231
  # That reverted the change and committed the revert\&.
232
232
  \fB$ git log \-n 1\fR
233
- commit e31cae25b69f773e05ea206848d1479315f2e349
233
+ commit 13e37b2a88d8fcd4ca4a55a4db27c619345f8396
234
234
  Author: you <you@chromium\&.org>
235
235
  Date: Thu Apr 10 09:11:36 2014 +0000
236
236
 
237
237
  Revert "This change is horribly broken\&."
238
238
 
239
- This reverts commit 00b47037e6732455c6b90f8800f4ffe5fbe7326d\&.
239
+ This reverts commit 7066f3820fe39e50400b9d406a394117f807538e\&.
240
240
 
241
241
  # As with old drover, reverts are generally OK to commit without LGTM\&.
242
242
  \fB$ git cl upload \-r some\&.committer@chromium\&.org \-\-send\-mail\fR
243
243
  \fB$ git cl land \-\-bypass\-hooks\fR
244
- Using 50% similarity for rename/copy detection\&. Override with \-\-similarity\&.
245
244
  .fi
246
245
  .if n \{\
247
246
  .RE
248
247
  .\}
249
248
  .sp
249
+ .sp
250
+ If your cherrypick onto a release branch gets reverted, do not create a new cherrypick from master onto that release branch\&. Instead, use the "Reland" button on the original cherrypick CL\&.
250
251
  .RE
251
252
  .sp
252
253
  .it 1 an-trap
@@ -268,7 +269,7 @@ Using 50% similarity for rename/copy detection\&. Override with \-\-similarity\&
268
269
 
269
270
  # Here\*(Aqs a commit (from some\&.committer) that we want to \*(Aqdrover\*(Aq\&.
270
271
  \fB$ git log \-n 1 \-\-pretty=fuller\fR
271
- commit 87e5c05985d9c2ee235c6b7b5d29cc50f45783db
272
+ commit 54631489ecf24a4ae3f5a12c393619a717cee85a
272
273
  Author: some\&.committer <some\&.committer@chromium\&.org>
273
274
  AuthorDate: Thu Apr 10 08:54:46 2014 +0000
274
275
  Commit: some\&.committer <some\&.committer@chromium\&.org>
@@ -282,8 +283,8 @@ Branch drover_9999 set up to track remote ref refs/branch\-heads/9999\&.
282
283
 
283
284
  # Now do the \*(Aqdrover\*(Aq\&.
284
285
  # IMPORTANT!!! Do Not leave off the \*(Aq\-x\*(Aq flag
285
- \fB$ git cherry\-pick \-x 87e5c05985d9c2ee235c6b7b5d29cc50f45783db\fR
286
- [drover_9999 5c879cc] This change needs to go to branch 9999
286
+ \fB$ git cherry\-pick \-x 54631489ecf24a4ae3f5a12c393619a717cee85a\fR
287
+ [drover_9999 56188f1] This change needs to go to branch 9999
287
288
  Author: some\&.committer <some\&.committer@chromium\&.org>
288
289
  Date: Thu Apr 10 08:54:46 2014 +0000
289
290
  1 file changed, 1 insertion(+)
@@ -292,7 +293,7 @@ Branch drover_9999 set up to track remote ref refs/branch\-heads/9999\&.
292
293
  # That took the code authored by some\&.committer and committed it to
293
294
  # the branch by the person who drovered it (i\&.e\&. you)\&.
294
295
  \fB$ git log \-n 1 \-\-pretty=fuller\fR
295
- commit 5c879cc29a19045571b08d9b058b8306bf7dee6c
296
+ commit 56188f1e5b44b5ce95394d41912e980bccca8cc2
296
297
  Author: some\&.committer <some\&.committer@chromium\&.org>
297
298
  AuthorDate: Thu Apr 10 08:54:46 2014 +0000
298
299
  Commit: you <you@chromium\&.org>
@@ -300,19 +301,20 @@ CommitDate: Thu Apr 10 09:11:36 2014 +0000
300
301
 
301
302
  This change needs to go to branch 9999
302
303
 
303
- (cherry picked from commit 87e5c05985d9c2ee235c6b7b5d29cc50f45783db)
304
+ (cherry picked from commit 54631489ecf24a4ae3f5a12c393619a717cee85a)
304
305
 
305
306
  # Looks good\&. Ship it!
306
307
  \fB$ git cl upload\fR
307
308
  # Wait for LGTM or TBR it\&.
308
309
  \fB$ git cl land\fR
309
- Using 50% similarity for rename/copy detection\&. Override with \-\-similarity\&.
310
310
  # Or skip the LGTM/TBR and just \*(Aqgit cl land \-\-bypass\-hooks\*(Aq
311
311
  .fi
312
312
  .if n \{\
313
313
  .RE
314
314
  .\}
315
315
  .sp
316
+ .sp
317
+ If git cl upload errors out, the branch you\(cqre uploading to probably has a CL with the same Change\-Id\&. Instead of cherry\-picking manually, use the Reland button in the Gerrit UI to create a new CL, and patch that CL into your client\&.
316
318
  .RE
317
319
  .SH "SEE ALSO"
318
320
  .sp
@@ -76,6 +76,9 @@ set-close::
76
76
  set-commit::
77
77
  sets the commit bit to trigger the Commit Queue
78
78
 
79
+ split::
80
+ splits a branch into smaller branches and uploads CLs
81
+
79
82
  status::
80
83
  show status of changelists
81
84
 
@@ -81,10 +81,18 @@ Revert Example
81
81
  ^^^^^^^^^^^^^^
82
82
  demo:2[]
83
83
 
84
+ If your cherrypick onto a release branch gets reverted, do not create a new
85
+ cherrypick from master onto that release branch. Instead, use the "Reland"
86
+ button on the original cherrypick CL.
87
+
84
88
  Manual Merge Example
85
89
  ^^^^^^^^^^^^^^^^^^^^
86
90
  demo:3[]
87
91
 
92
+ If `git cl upload` errors out, the branch you're uploading to probably has a CL
93
+ with the same Change-Id. Instead of cherry-picking manually, use the Reland
94
+ button in the Gerrit UI to create a new CL, and patch that CL into your client.
95
+
88
96
  SEE ALSO
89
97
  --------
90
98
  linkgit:git-cherry-pick[1], linkgit:git-revert[1]
@@ -95,11 +95,11 @@ rietveld_instances = [
95
95
  gerrit_instances = [
96
96
  {
97
97
  'url': 'chromium-review.googlesource.com',
98
- 'shorturl': 'crosreview.com',
98
+ 'shorturl': 'crrev.com/c',
99
99
  },
100
100
  {
101
101
  'url': 'chrome-internal-review.googlesource.com',
102
- 'shorturl': 'crosreview.com/i',
102
+ 'shorturl': 'crrev.com/i',
103
103
  },
104
104
  {
105
105
  'url': 'android-review.googlesource.com',
@@ -265,7 +265,10 @@ class MyActivity(object):
265
265
 
266
266
  bugs = []
267
267
  if description:
268
- matches = re.findall('BUG=(((\d+)(,\s?)?)+)', description)
268
+ # Handle both "Bug: 99999" and "BUG=99999" bug notations
269
+ # Multiple bugs can be noted on a single line or in multiple ones.
270
+ matches = re.findall(r'BUG[=:]\s?(((\d+)(,\s?)?)+)', description,
271
+ flags=re.IGNORECASE)
269
272
  if matches:
270
273
  for match in matches:
271
274
  bugs.extend(match[0].replace(' ', '').split(','))
@@ -342,8 +345,8 @@ class MyActivity(object):
342
345
 
343
346
  @staticmethod
344
347
  def gerrit_changes_over_rest(instance, filters):
345
- # Convert the "key:value" filter to a dictionary.
346
- req = dict(f.split(':', 1) for f in filters)
348
+ # Convert the "key:value" filter to a list of (key, value) pairs.
349
+ req = list(f.split(':', 1) for f in filters)
347
350
  try:
348
351
  # Instantiate the generator to force all the requests now and catch the
349
352
  # errors here.
@@ -68,6 +68,11 @@ EVERYONE = '*'
68
68
  BASIC_EMAIL_REGEXP = r'^[\w\-\+\%\.]+\@[\w\-\+\%\.]+$'
69
69
 
70
70
 
71
+ # Key for global comments per email address. Should be unlikely to be a
72
+ # pathname.
73
+ GLOBAL_STATUS = '*'
74
+
75
+
71
76
  def _assert_is_collection(obj):
72
77
  assert not isinstance(obj, basestring)
73
78
  # Module 'collections' has no 'Iterable' member
@@ -109,6 +114,11 @@ class Database(object):
109
114
  # Pick a default email regexp to use; callers can override as desired.
110
115
  self.email_regexp = re.compile(BASIC_EMAIL_REGEXP)
111
116
 
117
+ # Replacement contents for the given files. Maps the file name of an
118
+ # OWNERS file (relative to root) to an iterator returning the replacement
119
+ # file contents.
120
+ self.override_files = {}
121
+
112
122
  # Mapping of owners to the paths or globs they own.
113
123
  self._owners_to_paths = {EVERYONE: set()}
114
124
 
@@ -133,6 +143,9 @@ class Database(object):
133
143
  # being included from another file.
134
144
  self._included_files = {}
135
145
 
146
+ # File with global status lines for owners.
147
+ self._status_file = None
148
+
136
149
  def reviewers_for(self, files, author):
137
150
  """Returns a suggested set of reviewers that will cover the files.
138
151
 
@@ -172,7 +185,7 @@ class Database(object):
172
185
 
173
186
  def _check_reviewers(self, reviewers):
174
187
  _assert_is_collection(reviewers)
175
- assert all(self.email_regexp.match(r) for r in reviewers)
188
+ assert all(self.email_regexp.match(r) for r in reviewers), reviewers
176
189
 
177
190
  def _is_obj_covered_by(self, objname, reviewers):
178
191
  reviewers = list(reviewers) + [EVERYONE]
@@ -186,7 +199,7 @@ class Database(object):
186
199
  objname = self.os_path.dirname(objname)
187
200
  return False
188
201
 
189
- def _enclosing_dir_with_owners(self, objname):
202
+ def enclosing_dir_with_owners(self, objname):
190
203
  """Returns the innermost enclosing directory that has an OWNERS file."""
191
204
  dirpath = objname
192
205
  while not self._owners_for(dirpath):
@@ -196,6 +209,7 @@ class Database(object):
196
209
  return dirpath
197
210
 
198
211
  def load_data_needed_for(self, files):
212
+ self._read_global_comments()
199
213
  for f in files:
200
214
  dirpath = self.os_path.dirname(f)
201
215
  while not self._owners_for(dirpath):
@@ -225,23 +239,44 @@ class Database(object):
225
239
 
226
240
  self.read_files.add(owners_path)
227
241
 
242
+ is_toplevel = path == 'OWNERS'
243
+
228
244
  comment = []
229
245
  dirpath = self.os_path.dirname(path)
230
246
  in_comment = False
247
+ # We treat the beginning of the file as an blank line.
248
+ previous_line_was_blank = True
249
+ reset_comment_after_use = False
231
250
  lineno = 0
232
- for line in self.fopen(owners_path):
251
+
252
+ if path in self.override_files:
253
+ file_iter = self.override_files[path]
254
+ else:
255
+ file_iter = self.fopen(owners_path)
256
+
257
+ for line in file_iter:
233
258
  lineno += 1
234
259
  line = line.strip()
235
260
  if line.startswith('#'):
261
+ if is_toplevel:
262
+ m = re.match('#\s*OWNERS_STATUS\s+=\s+(.+)$', line)
263
+ if m:
264
+ self._status_file = m.group(1).strip()
265
+ continue
236
266
  if not in_comment:
237
267
  comment = []
268
+ reset_comment_after_use = not previous_line_was_blank
238
269
  comment.append(line[1:].strip())
239
270
  in_comment = True
240
271
  continue
272
+ in_comment = False
273
+
241
274
  if line == '':
275
+ comment = []
276
+ previous_line_was_blank = True
242
277
  continue
243
- in_comment = False
244
278
 
279
+ previous_line_was_blank = False
245
280
  if line == 'set noparent':
246
281
  self._stop_looking.add(dirpath)
247
282
  continue
@@ -258,6 +293,8 @@ class Database(object):
258
293
  relative_glob_string = self.os_path.relpath(full_glob_string, self.root)
259
294
  self._add_entry(relative_glob_string, directive, owners_path,
260
295
  lineno, '\n'.join(comment))
296
+ if reset_comment_after_use:
297
+ comment = []
261
298
  continue
262
299
 
263
300
  if line.startswith('set '):
@@ -266,6 +303,49 @@ class Database(object):
266
303
 
267
304
  self._add_entry(dirpath, line, owners_path, lineno,
268
305
  ' '.join(comment))
306
+ if reset_comment_after_use:
307
+ comment = []
308
+
309
+ def _read_global_comments(self):
310
+ if not self._status_file:
311
+ if not 'OWNERS' in self.read_files:
312
+ self._read_owners('OWNERS')
313
+ if not self._status_file:
314
+ return
315
+
316
+ owners_status_path = self.os_path.join(self.root, self._status_file)
317
+ if not self.os_path.exists(owners_status_path):
318
+ raise IOError('Could not find global status file "%s"' %
319
+ owners_status_path)
320
+
321
+ if owners_status_path in self.read_files:
322
+ return
323
+
324
+ self.read_files.add(owners_status_path)
325
+
326
+ lineno = 0
327
+ for line in self.fopen(owners_status_path):
328
+ lineno += 1
329
+ line = line.strip()
330
+ if line.startswith('#'):
331
+ continue
332
+ if line == '':
333
+ continue
334
+
335
+ m = re.match('(.+?):(.+)', line)
336
+ if m:
337
+ owner = m.group(1).strip()
338
+ comment = m.group(2).strip()
339
+ if not self.email_regexp.match(owner):
340
+ raise SyntaxErrorInOwnersFile(owners_status_path, lineno,
341
+ 'invalid email address: "%s"' % owner)
342
+
343
+ self.comments.setdefault(owner, {})
344
+ self.comments[owner][GLOBAL_STATUS] = comment
345
+ continue
346
+
347
+ raise SyntaxErrorInOwnersFile(owners_status_path, lineno,
348
+ 'cannot parse status entry: "%s"' % line.strip())
269
349
 
270
350
  def _add_entry(self, owned_paths, directive, owners_path, lineno, comment):
271
351
  if directive == 'set noparent':
@@ -281,8 +361,9 @@ class Database(object):
281
361
  self._owners_to_paths.setdefault(owner, set()).add(owned_paths)
282
362
  self._paths_to_owners.setdefault(owned_paths, set()).add(owner)
283
363
  elif self.email_regexp.match(directive) or directive == EVERYONE:
284
- self.comments.setdefault(directive, {})
285
- self.comments[directive][owned_paths] = comment
364
+ if comment:
365
+ self.comments.setdefault(directive, {})
366
+ self.comments[directive][owned_paths] = comment
286
367
  self._owners_to_paths.setdefault(directive, set()).add(owned_paths)
287
368
  self._paths_to_owners.setdefault(owned_paths, set()).add(directive)
288
369
  else:
@@ -334,20 +415,31 @@ class Database(object):
334
415
  return owners
335
416
 
336
417
  def _covering_set_of_owners_for(self, files, author):
337
- dirs_remaining = set(self._enclosing_dir_with_owners(f) for f in files)
418
+ dirs_remaining = set(self.enclosing_dir_with_owners(f) for f in files)
338
419
  all_possible_owners = self.all_possible_owners(dirs_remaining, author)
339
420
  suggested_owners = set()
340
- while dirs_remaining:
421
+ while dirs_remaining and all_possible_owners:
341
422
  owner = self.lowest_cost_owner(all_possible_owners, dirs_remaining)
342
423
  suggested_owners.add(owner)
343
424
  dirs_to_remove = set(el[0] for el in all_possible_owners[owner])
344
425
  dirs_remaining -= dirs_to_remove
426
+ # Now that we've used `owner` and covered all their dirs, remove them
427
+ # from consideration.
428
+ del all_possible_owners[owner]
429
+ for o, dirs in all_possible_owners.items():
430
+ new_dirs = [(d, dist) for (d, dist) in dirs if d not in dirs_to_remove]
431
+ if not new_dirs:
432
+ del all_possible_owners[o]
433
+ else:
434
+ all_possible_owners[o] = new_dirs
345
435
  return suggested_owners
346
436
 
347
437
  def all_possible_owners(self, dirs, author):
348
- """Returns a list of (potential owner, distance-from-dir) tuples; a
349
- distance of 1 is the lowest/closest possible distance (which makes the
350
- subsequent math easier)."""
438
+ """Returns a dict of {potential owner: (dir, distance)} mappings.
439
+
440
+ A distance of 1 is the lowest/closest possible distance (which makes the
441
+ subsequent math easier).
442
+ """
351
443
  all_possible_owners = {}
352
444
  for current_dir in dirs:
353
445
  dirname = current_dir