[scm] Fix list all files when filename has space

Off by one - we should have 4 parts, so we need maxsplit=3.

R=aravindvasudev@google.com, jojwang

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

depot_tools

Tools for working with Chromium development. It requires python 2.7 or 3.8 for python 3 support.

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.