[git] Remove tags / branches filter from ls-remote

The flag to filter for branches was renamed in git 2.46.0 [1] from
`-h` to `-b`. This causes previous versions of git to fail when running
ls-remote.

To be compatible across a version upgrade, a second git call would be
required to retrieve the version and determine the correct flag.
However, the filter feature is not used yet and can also be solved by
specifying the absolute ref path within the recipe. Therefore, this
change removes ls-remote's filter flags.

[1] https://git-scm.com/docs/git-ls-remote/2.42.0

R=machenbach@chromium.org, gavinmak@google.com

Bug: none
Change-Id: I840fb3ac56daf47c798d5c32f00de841b8db2771
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/6028418
Auto-Submit: Alexander Schulze <alexschulze@chromium.org>
Reviewed-by: Gavin Mak <gavinmak@google.com>
Commit-Queue: Gavin Mak <gavinmak@google.com>
3 files changed
tree: 72d0e4e286d5b906fc1c5144a5a2e4039bbeb7c9
  1. bootstrap/
  2. fetch_configs/
  3. hooks/
  4. infra/
  5. infra_lib/
  6. man/
  7. metadata/
  8. python-bin/
  9. python2-bin/
  10. recipes/
  11. testing_support/
  12. tests/
  13. third_party/
  14. win_toolchain/
  15. zsh-goodies/
  16. .cipd_impl.ps1
  17. .flake8
  18. .git-blame-ignore-revs
  19. .gitattributes
  20. .gitignore
  21. .isort.cfg
  22. .style.yapf
  23. .vpython3
  24. auth.py
  25. autoninja
  26. autoninja.bat
  27. autoninja.py
  28. bazel.py
  29. bb
  30. bb.bat
  31. black
  32. bootstrap_python3
  33. breakpad.py
  34. BUILD_OWNERS
  35. build_telemetry
  36. build_telemetry.bat
  37. build_telemetry.py
  38. cipd
  39. cipd.bat
  40. cipd_bin_setup.bat
  41. cipd_bin_setup.sh
  42. cipd_client_version
  43. cipd_client_version.digests
  44. cipd_manifest.txt
  45. cipd_manifest.versions
  46. cipd_manifest_cros_python2.txt
  47. cipd_manifest_cros_python2.versions
  48. clang-format
  49. clang-format.bat
  50. clang_format.py
  51. codereview.settings
  52. compile_single_file
  53. compile_single_file.bat
  54. compile_single_file.py
  55. cpplint.bat
  56. cpplint.py
  57. cpplint_chromium.py
  58. cros
  59. CROS_OWNERS
  60. cros_python2.vpython
  61. detect_host_arch.py
  62. DIR_METADATA
  63. dirmd
  64. dirmd.bat
  65. download_from_google_storage
  66. download_from_google_storage.bat
  67. download_from_google_storage.py
  68. ensure_bootstrap
  69. fetch
  70. fetch.bat
  71. fetch.py
  72. gclient
  73. gclient-new-workdir.py
  74. gclient.bat
  75. gclient.py
  76. gclient_completion.sh
  77. gclient_eval.py
  78. gclient_paths.py
  79. gclient_scm.py
  80. gclient_utils.py
  81. gerrit_client.py
  82. gerrit_util.py
  83. git-cache
  84. git-cl
  85. git-credential-luci
  86. git-credential-luci.bat
  87. git-crrev-parse
  88. git-drover
  89. git-find-releases
  90. git-footers
  91. git-freeze
  92. git-gs
  93. git-hyper-blame
  94. git-map
  95. git-map-branches
  96. git-mark-merge-base
  97. git-nav-downstream
  98. git-nav-upstream
  99. git-new-branch
  100. git-number
  101. git-rebase-update
  102. git-rename-branch
  103. git-reparent-branch
  104. git-retry
  105. git-runhooks
  106. git-squash-branch
  107. git-squash-branch-tree
  108. git-thaw
  109. git-upstream-diff
  110. git_auth.py
  111. git_cache.py
  112. git_cl.py
  113. git_cl_completion.sh
  114. git_common.py
  115. git_completion.sh
  116. git_dates.py
  117. git_find_releases.py
  118. git_footers.py
  119. git_freezer.py
  120. git_hyper_blame.py
  121. git_map.py
  122. git_map_branches.py
  123. git_mark_merge_base.py
  124. git_nav_downstream.py
  125. git_new_branch.py
  126. git_number.py
  127. git_rebase_update.py
  128. git_rename_branch.py
  129. git_reparent_branch.py
  130. git_retry.py
  131. git_squash_branch.py
  132. git_squash_branch_tree.py
  133. git_upstream_diff.py
  134. gn
  135. gn.bat
  136. gn.py
  137. gn_helper.py
  138. google-java-format
  139. google-java-format.bat
  140. google_java_format.py
  141. gsutil.py
  142. gsutil.py.bat
  143. gsutil.vpython3
  144. isort
  145. led
  146. led.bat
  147. LICENSE
  148. lockfile.py
  149. luci-auth
  150. luci-auth.bat
  151. LUCI_OWNERS
  152. lucicfg
  153. lucicfg.bat
  154. mac_toolchain
  155. metrics.py
  156. metrics.README.md
  157. metrics_utils.py
  158. my_activity.py
  159. newauth.py
  160. ninja
  161. ninja.bat
  162. ninja.py
  163. ninjalog_uploader.py
  164. OWNERS
  165. owners_client.py
  166. owners_finder.py
  167. pinpoint
  168. pinpoint.bat
  169. post_build_ninja_summary.py
  170. PRESUBMIT.py
  171. presubmit_canned_checks.py
  172. presubmit_diff.py
  173. presubmit_support.py
  174. prpc
  175. prpc.bat
  176. pylint-2.17
  177. pylint-2.17.bat
  178. pylint-2.6
  179. pylint-2.6.bat
  180. pylint-2.7
  181. pylint-2.7.bat
  182. pylint_main.py
  183. pylintrc
  184. pylintrc-2.17
  185. python_runner.sh
  186. rdb
  187. rdb.bat
  188. rdb_wrapper.py
  189. README.gclient.md
  190. README.git-cl.md
  191. README.md
  192. reclient_helper.py
  193. RECLIENT_OWNERS
  194. reclientreport
  195. reclientreport.bat
  196. reclientreport.py
  197. repo
  198. repo_launcher
  199. roll-dep
  200. roll-dep.bat
  201. roll_dep.py
  202. roll_downstream_gcs_deps.py
  203. rustfmt.py
  204. scm.py
  205. setup_color.py
  206. siso
  207. siso.bat
  208. siso.py
  209. split_cl.py
  210. subcommand.py
  211. subprocess2.py
  212. swift-format
  213. swift_format.py
  214. update_depot_tools
  215. update_depot_tools.bat
  216. update_depot_tools_toggle.py
  217. upload_metrics.py
  218. upload_to_google_storage.py
  219. upload_to_google_storage_first_class.py
  220. utils.py
  221. vpython3
  222. vpython3.bat
  223. WATCHLISTS
  224. watchlists.py
  225. whitespace.txt
  226. win32imports.py
  227. yapf
  228. yapf.bat
README.md

depot_tools

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

Tools

The most important tools are:

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

There are a lot of git utilities included.

Updating

depot_tools updates itself automatically when running gclient tool. To disable auto update, set the environment variable DEPOT_TOOLS_UPDATE=0 or run ./update_depot_tools_toggle.py --disable.

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

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

Contributing

To contribute change for review:

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

# Request a review.
git cl upload -r reviewer1@chromium.org,reviewer2@chromium.org --send-mail

# Edit change description if needed.
git cl desc

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

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

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

cpplint.py

Until 2018, our cpplint.py was a copy of the upstream version at https://github.com/google/styleguide/tree/gh-pages/cpplint. Unfortunately, that repository is not maintained any more. If you want to update cpplint.py in depot_tools, just upload a patch to do so. We will figure out a long-term strategy via issue https://crbug.com/916550.

Note that the cpplint.py here is also used by the Tricium analyzer, so if the cpplint.py here changes, we should also update the copy used there.