Commit Graph

2394 Commits (77e8bd63857b5a623791724373535a7dd40f7ed5)

Author SHA1 Message Date
Scott Lee bf32de3167 add metrics_xml_formatter
git cl format supports formatting certain xml files under tools/metrics.
This CL adds metrics_xml_formatter so that the formatter can be run
with git cl format.

Bug: b/369827156
Change-Id: I5922cd79304aa8e06917aacc9f2d9bd3ed548c2f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/6072565
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Scott Lee <ddoman@chromium.org>
6 months ago
Scott Lee 562c59c76c [git_footers] add support for multiline footers
Gerrit allows multiline footers with indents.

e.g.,
Test: something
   looks great

This CL fixes the bug such that add_footer correctly inserts
a given message after multiline footers.

Bug: 379923433
Change-Id: I9b3f793095b63b0586123543a2f8d49f0503fca0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/6064963
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Scott Lee <ddoman@chromium.org>
6 months ago
Scott Lee 8e30250504 [git_footers] remove param before_keys from add_footer
The param before_key used to be used in presubmit_support.py, but
it was removed in 2018, and has never been used anywhere since.
- https://crrev.com/c/1351509
- http://shortn/_YQUh4yC9Tc

This CL removes it to simplify the code before the next CL.
It hasn't been used for several years and will unlikely be used
in the future.

Bug: 379923433
Change-Id: Ib0da340235a991b6d8edca041eae811540d4aa60
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/6064306
Commit-Queue: Scott Lee <ddoman@chromium.org>
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
6 months ago
Fumitoshi Ukai db017d1ffe autoninja: use build/toolchain/use_reclient_value.py
https://crrev.com/c/6048393 provides build/toolchain/use_reclient_value.py
to get value for use_reclient.

Use it in autoninja if it exists.

Bug: 341167943
Change-Id: Ia6207ea044cc109fa156deff3c3357475368576f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/6024739
Commit-Queue: Fumitoshi Ukai <ukai@google.com>
Auto-Submit: Fumitoshi Ukai <ukai@google.com>
Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
Reviewed-by: Junji Watanabe <jwata@google.com>
6 months ago
Fumitoshi Ukai fd5161870a gn_helper: find correct directory for //
gn finds // by searching .gn in parent directories.

To support out dir is not 2 directories from root (i.e. out/Default),
search .gn in parent directory for '//' location.

tools/licenses/licenses.py runs 'gn gen' in out/Default/$tmp.
for such case, '//' should be '../../..', or fail to import '//path'

Change-Id: I6e5ccbe93cb5e51704f31d4eb558c03560286865
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/6051636
Reviewed-by: Philipp Wollermann <philwo@google.com>
Commit-Queue: Fumitoshi Ukai <ukai@google.com>
Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
6 months ago
Anne Redulla 25f9761514 Prefer direct git installation for Windows
Bug: b/360206460
Change-Id: I7068b201b0b976ac619db16ff16d5ffbe5aea362
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5884196
Reviewed-by: Allen Li <ayatane@chromium.org>
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Anne Redulla <aredulla@google.com>
7 months ago
Yiwei Zhang dcaa6afa97 gerrit_client: introduce add message command
Bug: 378480632
Change-Id: I411b3136db27a5ca2b43481bc9b650bef93f5275
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/6012758
Auto-Submit: Yiwei Zhang <yiwzhang@google.com>
Commit-Queue: Yiwei Zhang <yiwzhang@google.com>
Reviewed-by: Scott Lee <ddoman@chromium.org>
7 months ago
Anne Redulla d6528a124b [git-sso] Read sso helper output line by line
On Windows, the subprocess running the sso helper does not
complete the `read()` in time. This CL reads the output
line by line, and stops reading once the required fields
have been specified.

Bug: b/360206460
Change-Id: Ib5f95093cd6f9bbbe5093a7e16393ecd97934cf2
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5992110
Reviewed-by: Yiwei Zhang <yiwzhang@google.com>
Commit-Queue: Anne Redulla <aredulla@google.com>
7 months ago
Gavin Mak a6ce588715 Use ProvidedDiffChange if diff is empty string
A ProvidedDiffChange should be able to use an diff, even if it is empty.

Bug: 372936485
Change-Id: If6bea0063e92c8942aed080e4c26b8d032b90faa
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5926311
Commit-Queue: Gavin Mak <gavinmak@google.com>
Reviewed-by: Scott Lee <ddoman@chromium.org>
7 months ago
Josip Sokcevic e0c47c138a [scm] Handle empty .gitmodules file
R=yiwzhang@google.com

Bug: 372697507
Change-Id: I6ac59b762fedd328d23dcfb4f8ef328f96eb36a7
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5923135
Reviewed-by: Yiwei Zhang <yiwzhang@google.com>
Commit-Queue: Josip Sokcevic <sokcevic@chromium.org>
8 months ago
Scott Lee 17a0d843c1 allow comment lines in inclusive_language_presubmit_exempt_dirs.txt
inclusive_language_presubmit_exempt_dirs.txt is a list of
paths to exclude from the inclusive word presubmit check.
https://source.chromium.org/chromium/chromium/tools/depot_tools/+/main:presubmit_canned_checks.py;l=2602;drc=0bc7c4832e4f2d453e4826c9a2e1197e11bd6ec7

This CL allows comment lines, starting with \#, in the file.
(Also, fixes a bug to allow an empty line)

Bug: 369701326
Change-Id: I7647459281f7921362aa4070c26671f321b7cfea
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5906016
Auto-Submit: Scott Lee <ddoman@chromium.org>
Commit-Queue: Scott Lee <ddoman@chromium.org>
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
8 months ago
Bruce Dawson 5dce57b05e Remove brucedawson@ from some depot_tools OWNERS files
I'm leaving Google and I no longer wish to be an OWNER.

Change-Id: Id5b91b72596ce0ab06dcdc80998d76899797fcdd
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5907923
Reviewed-by: Gavin Mak <gavinmak@google.com>
Auto-Submit: Bruce Dawson <brucedawson@chromium.org>
Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
8 months ago
Joanna Wang 68237d3317 Update CMDgitmodules to set `gclient-recursedeps` in .gitmodules file.
Note there's not presubmit checking that this stays in sync, but I think recursdeps is not updated often enough that it's a high priority. We will also need to run `gclient gitmodules` for all repos we care about to update the .gitmodules file after this lands.


Bug: b/368607402, b/371352079
Change-Id: Iac90f0f45a30e2c1fdccf6053f07ec34c4139df1
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5903942
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Joanna Wang <jojwang@chromium.org>
8 months ago
Bruce Dawson 9157dd872e Remove extraneous Python version from presubmit warnings
When a presubmit warning is triggered this message is printed:

    There were Python 3 presubmit warnings.

The Python version information was useful when we were transitioning
our presubmits from Python 2 to Python 3, but that transition is long
finished, and now that information is just noise.

This change deletes the excess information.

Change-Id: I4e43e1c9daf36daaaa9430d76ad557c800cf962b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5907924
Commit-Queue: Gavin Mak <gavinmak@google.com>
Reviewed-by: Gavin Mak <gavinmak@google.com>
Auto-Submit: Bruce Dawson <brucedawson@chromium.org>
8 months ago
Anne Redulla 1291794f5e Check git version
On `git cl upload` and when running a command on all deps
using `gclient` in a non-Cog env, prints/logs a warning if git
should be updated. Non-blocking; command should still be
attempted as usual.

Bug: b/360206460
Change-Id: I8ebef4cb8b520124bc34ade7f0f2179874b470a4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5874690
Reviewed-by: Yiwei Zhang <yiwzhang@google.com>
Commit-Queue: Anne Redulla <aredulla@google.com>
8 months ago
Junji Watanabe ec715a4dac ninjalog_uploader: Add is_cloudtop, gce_machine_type, is_cog to the Ninjalog metadata
Bug: 367856712
Change-Id: Ibaa96d779cc3fc896e8203525346e3ca27d9d8b0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5877849
Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
Reviewed-by: Fumitoshi Ukai <ukai@google.com>
Commit-Queue: Junji Watanabe <jwata@google.com>
8 months ago
Helmut Januschka d1259b49c5 show-scope is only available git>=2.26
Change-Id: Ie83edb34f2e582ccca177e36010344788a090376
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5874040
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Josip Sokcevic <sokcevic@chromium.org>
8 months ago
Anne Redulla 795b5b6a20 Added check_git_version helper
Not yet used.

Bug: b/360206460
Change-Id: I233cdc17ec17d477ec78024edca2b87417a92258
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5869272
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Reviewed-by: Yiwei Zhang <yiwzhang@google.com>
Commit-Queue: Anne Redulla <aredulla@google.com>
8 months ago
Gavin Mak bba50600f8 Track origin/lkgr when using --lkgr flag in new-branch
Passing --lkgr tracks the local "lkgr" branch which may not exist.
"origin/lkgr" is a better default since that should exist for projects
that have a lkgr.

Bug: 366394191
Change-Id: I2a0ce1a4d8540ce2e3ca06ef892e288c9892cf0c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5876340
Auto-Submit: Gavin Mak <gavinmak@google.com>
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Josip Sokcevic <sokcevic@chromium.org>
8 months ago
Josip Sokcevic 76021e34e5 Update roll_downstream_gcs_deps to take a list of source and destination packages.
This is needed to support rolling multiple packages at once when package
names don't match.

Change-Id: I20bb5edfee87bb3e089a2c25f597e4778e0fe60f
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5867086
Reviewed-by: Stephanie Kim <kimstephanie@google.com>
Auto-Submit: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Stephanie Kim <kimstephanie@google.com>
9 months ago
Joanna Wang d43a3eb748 Add end_commit for calculating GitChange diffs.
Bug: b/365162784

Change-Id: I97b69b1ae5183bbdaa7d4de0b1f23e62f4e1d8d0
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5853908
Reviewed-by: Gavin Mak <gavinmak@google.com>
Commit-Queue: Joanna Wang <jojwang@chromium.org>
9 months ago
Junji Watanabe 20a0cda9e9 ninjalog_uploader: Distinguish between explicit and default build configs
This CL adds `explicit_build_config_keys` to the metadata for the server
to distinguish between explicit and default configs.
This CL excludes the configs set in `//.gn` from the list, so that
the configs specified by users will be considered as explicit.

Bug: 364971744
Change-Id: I6a3d289d8ca6e054dac691051b53c92ad1ec23c5
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5853009
Commit-Queue: Junji Watanabe <jwata@google.com>
Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
9 months ago
Fumitoshi Ukai 61fad561d6 autoninja: check RBE project, not account
Account check would become too slow.
We'll check RBE project to use instead.

On corp machine, our policy to use @google.com account
and rbe-chrome-untrusted to build chromium/chrome.
We don't allow rbe-chromium-untrusted with @chromium.org
on corp machine.

On non-corp machine, user couldn't use rbe-chrome-untrusted
because it's @google.com only, and corp security policy
doesn't allow @google.com account on non-corp machine.

Bug: b/364318216
Change-Id: I0f3a19e105b050aef6a62e1b25b45b1722382a34
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5848450
Reviewed-by: Scott Lee <ddoman@chromium.org>
Reviewed-by: Michael Savigny <msavigny@google.com>
Commit-Queue: Fumitoshi Ukai <ukai@google.com>
Reviewed-by: Junji Watanabe <jwata@google.com>
Reviewed-by: Philipp Wollermann <philwo@google.com>
9 months ago
Helmut Januschka eb0cb70185 Avoid silently overwriting diff.ignoreSubmodules config.
Setting this to `dirty` is generally desirable. If the user has
explicitly set it to something else on their chromium checkout,
warn rather than silently overwriting.

Rev^2: https://crrev.com/c/5832742

Change-Id: I8392c7976af0a1f8754a630bd865830ba6698051
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5836831
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Helmut Januschka <helmut@januschka.com>
9 months ago
Dan Le Febvre ab105459cb Revert "Avoid silently overwriting diff.ignoreSubmodules config."
This reverts commit acd68a9a5d.

Reason for revert: Doesn't get values for non scoped config.

Original change's description:
> Avoid silently overwriting diff.ignoreSubmodules config.
>
> Setting this to `dirty` is generally desirable. If the user has
> explicitly set it to something else on their chromium checkout,
> warn rather than silently overwriting.
>
> Bug: 362787698
> Change-Id: I56587d501aafc5de78c82bc46e29f926519d25fa
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5832742
> Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
> Commit-Queue: Helmut Januschka <helmut@januschka.com>

Bug: 362787698
Change-Id: I3e5d1e44e3707dda53dc398f83c43259868d343b
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5842067
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Reviewed-by: Joey Scarr <jsca@google.com>
Owners-Override: Joey Scarr <jsca@google.com>
Commit-Queue: Dan Le Febvre <dlf@google.com>
9 months ago
Helmut Januschka acd68a9a5d Avoid silently overwriting diff.ignoreSubmodules config.
Setting this to `dirty` is generally desirable. If the user has
explicitly set it to something else on their chromium checkout,
warn rather than silently overwriting.

Bug: 362787698
Change-Id: I56587d501aafc5de78c82bc46e29f926519d25fa
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5832742
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Helmut Januschka <helmut@januschka.com>
9 months ago
Junji Watanabe 28edf94b2b build_telemetry: Set timeout to 'cipd auth-info' command.
When it's offline or the internet connection is unstable,
build_telemetry.enabled() may fail, which end up with
blocking autoninja command.

Bug: 364611323
Change-Id: Ie0d26e7b950e29af1392e452a0cd7e986494cdcf
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5842066
Auto-Submit: Junji Watanabe <jwata@google.com>
Commit-Queue: Junji Watanabe <jwata@google.com>
Reviewed-by: Philipp Wollermann <philwo@google.com>
9 months ago
Junji Watanabe 4250face7b ninjalog_uploader: Collect all GN args except sensitive information
Bug: 364971744
Fixed: 364971744
Change-Id: Ia09ba43f3cd12638923b3add458f2f32f9a03860
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5836322
Commit-Queue: Junji Watanabe <jwata@google.com>
Auto-Submit: Junji Watanabe <jwata@google.com>
Reviewed-by: Fumitoshi Ukai <ukai@google.com>
Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
Commit-Queue: Fumitoshi Ukai <ukai@google.com>
9 months ago
Gavin Mak 9e91079582 Use the cherry picked CL's Change-Id
If a CL and its cherry pick share a change ID, Gerrit will link to each
other in the UI.

Bug: 364692466
Change-Id: I6740ddfd813124d5876b29b05c4b8f91822faa57
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5838865
Auto-Submit: Gavin Mak <gavinmak@google.com>
Reviewed-by: Matt Jones <mdjones@google.com>
Commit-Queue: Matt Jones <mdjones@google.com>
9 months ago
Allen Li 3a7d070966 [gerrit_utils] Add caching to ShouldUseSSO
This only lasts per process invocation, so we don't worry about cache
size (and it's a minor performance save).

Bug: b/350806563
Change-Id: Ie8e1aa2933c5582a3a2e2f75f04590f6bb432c4c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5833280
Commit-Queue: Allen Li <ayatane@chromium.org>
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
9 months ago
Allen Li dc8d502d13 [gerrit_util] Don't try to use SSO on non-googlesource hosts
In case you're getting funny thoughts, these requests would not attach
any cookies anyway because the domain doesn't match.  It just allows
requests to properly fallback to OAuth path.

Bug: b/362741558
Change-Id: Iaf83ad640501ff45671dbc358e676cbeaf04d686
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5824222
Commit-Queue: Allen Li <ayatane@chromium.org>
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
9 months ago
Robert Iannucci b46b033bd7 [git-cl] Make quick Gerrit RPC at the top of CMDupload.
This prevents the following scenario:

$ git cl upload ...
<runs `git status`>  # slow operation
<runs `git cl presubmit`>  # slow operation
<runs $EDITOR /commit/message> # requires thinking
CRASH!! You need to authenticate!!
$ <authenticate>
$ git cl upload ...
<runs `git status`>  # slow operation
<runs `git cl presubmit`>  # slow operation
<runs $EDITOR /commit/message> # opens new, fresh, editor :(

Now it will do:

$ git cl upload ...
CRASH!! You need to authenticate!!
$ <authenticate>
$ git cl upload ...
<runs `git status`>  # slow operation
<runs `git cl presubmit`>  # slow operation
<runs $EDITOR /commit/message> # requires thinking

R=ayatane, sokcevic@google.com

Change-Id: Icada2b69b3f4ddaff810dc82d54d65f3918d1434
Bug: 351071334
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5826970
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Josip Sokcevic <sokcevic@chromium.org>
Auto-Submit: Robbie Iannucci <iannucci@chromium.org>
9 months ago
Junji Watanabe 4a08b97dd4 ninjalog_uploader: Add user email to ninjalog metadata
Bug: 348527311
Change-Id: Idb623a57a2374f4ed5461a9cf159b2eda62c94f4
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5823448
Auto-Submit: Junji Watanabe <jwata@google.com>
Commit-Queue: Junji Watanabe <jwata@google.com>
Reviewed-by: Takuto Ikuta <tikuta@chromium.org>
9 months ago
Allen Li 04a2e71a92 [metrics] Add new auth metric
Bug: b/358442026
Change-Id: If91494b52fe27177f68e42ec40977fd8ca1fd4cc
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5786166
Commit-Queue: Allen Li <ayatane@chromium.org>
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
10 months ago
Gavin Mak 37a737c1bc Update presubmit feedback message for Cog
We shouldn't be suggesting people run unsupported commands on cog.

Change-Id: I0a15b825b32a3f9bc40c65e0b51be33f06de54ad
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5782965
Auto-Submit: Gavin Mak <gavinmak@google.com>
Commit-Queue: Gavin Mak <gavinmak@google.com>
Reviewed-by: Yiwei Zhang <yiwzhang@google.com>
10 months ago
Allen Li a40df24c91 [git_auth] Add apply_global tests
Bug: b/351024645
Change-Id: I54e55545c27275165b3435707e2b47095c8fcac9
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5739434
Reviewed-by: Yiwei Zhang <yiwzhang@google.com>
Commit-Queue: Allen Li <ayatane@chromium.org>
10 months ago
Robert Iannucci 7762989876 [scm_mock] Expose mocking of system config layer.
R=ayatane, yiwzhang

Change-Id: I15a48c6af54d2b047b085abc729d2849759816d3
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5762792
Reviewed-by: Allen Li <ayatane@chromium.org>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
Reviewed-by: Yiwei Zhang <yiwzhang@google.com>
10 months ago
Gavin Mak d4c6d40d50 Reduce RebaseChange max tries from 6 to 2
On failure, gerrit_util always retries HTTP requests the maximum
number of times. This doesn't always make sense, e.g. for RebaseChange
which gets 409 on a merge conflict and can't be retried into
succeeding.

Bug: b/341792235
Change-Id: I6f9e212c5b0365236a99768f056bab2eb60cddc6
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5773566
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Gavin Mak <gavinmak@google.com>
10 months ago
Allen Li 78d32ff67a [scm_mock] Add global_state param to mock
Change-Id: If0b35ead4804c17d8ec8acdf7bff96cfe73349b8
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5773569
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Allen Li <ayatane@chromium.org>
10 months ago
Allen Li f0f34c47f7 Revert "[git-number] Remove unused git-number script."
This reverts commit c92e85abb7.

Reason for revert: broke a builder

Original change's description:
> [git-number] Remove unused git-number script.
>
> R=ayatane, yiwzhang
>
> Change-Id: I53430ba4cf4ff83e222b4d9ffdeddfd6299e3330
> Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5766853
> Reviewed-by: Yiwei Zhang <yiwzhang@google.com>
> Reviewed-by: Allen Li <ayatane@chromium.org>
> Commit-Queue: Robbie Iannucci <iannucci@chromium.org>

Change-Id: Iaec18d6e688343ef1276166ff9e6bac033c6de56
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5773571
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Bot-Commit: Rubber Stamper <rubber-stamper@appspot.gserviceaccount.com>
Auto-Submit: Allen Li <ayatane@chromium.org>
Commit-Queue: Josip Sokcevic <sokcevic@chromium.org>
10 months ago
Allen Li 65acc1df40 [scm_mock] Make params keyword only
None of the optional params are used currently, so make them keyword
to ease future changes, like adding the global_config in the next CL.

Change-Id: I213cccb945c969b4211adad8ccd9170ef6209e0a
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5773568
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Allen Li <ayatane@chromium.org>
10 months ago
Robert Iannucci 10d7ebda04 [scm_mock] Remove unused `config` parameter.
R=ayatane, yiwzhang

Change-Id: I843a967249d9f1f967c94af91f98c3885b319d01
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5763524
Reviewed-by: Yiwei Zhang <yiwzhang@google.com>
Reviewed-by: Allen Li <ayatane@chromium.org>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
10 months ago
Robert Iannucci c92e85abb7 [git-number] Remove unused git-number script.
R=ayatane, yiwzhang

Change-Id: I53430ba4cf4ff83e222b4d9ffdeddfd6299e3330
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5766853
Reviewed-by: Yiwei Zhang <yiwzhang@google.com>
Reviewed-by: Allen Li <ayatane@chromium.org>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
10 months ago
Robert Iannucci 283661a975 [scm] Add key canonicalization to scm's CachedGitConfigState.
This will allow `git cl` to be much more consistent with regards to
setting and reading git config key values in both production and
testing.

R=ayatane, yiwzhang

Change-Id: I2f1f1c5c6aaab12e2e9dbcf36c181244706cd4a8
Bug: 357688295
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5762199
Reviewed-by: Yiwei Zhang <yiwzhang@google.com>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
10 months ago
Allen Li a1c9f5ecef [scm_mock] Fix types
Change-Id: I3d1dba2d8c3adc5ef4cf475514174b1d3f817010
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5773567
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Allen Li <ayatane@chromium.org>
10 months ago
Josip Sokcevic bed17582bf Add a script to copy GCS packages from one DEPS file to another
This script will be used to roll downstream GCS packages.

Bug: 358435510
Change-Id: I7ea1229eb4e8c4c590cad336573f9d24662f5730
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5765858
Reviewed-by: Joanna Wang <jojwang@chromium.org>
Commit-Queue: Josip Sokcevic <sokcevic@chromium.org>
10 months ago
Gavin Mak ec800aa077 Add "git cl cherry-pick" for cherry picking a chain of CLs via Gerrit
Users who want to upload multiple cherry picks usually run "git
cherry-pick" locally, multiple times. Gerrit does not recognize
these changes as cherry picks and neither do other services that
query cherry pick info from Gerrit, e.g. rubber stamper.

For Gerrit to identify a change as a true cherry pick, you need to
use their Cherry Pick Revision REST API endpoint. This new command
uses it to create a chain of cherry pick CLs recognized by Gerrit.

Bug: b/341792235
Change-Id: I4ba75da3901f6ea68c1debd65820e802da681798
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5756161
Reviewed-by: Josip Sokcevic <sokcevic@chromium.org>
Commit-Queue: Gavin Mak <gavinmak@google.com>
10 months ago
Gavin Mak f52dad9747 Handle binaries in presubmit_diff
presubmit_diff always tries to decode files from Gitiles with UTF-8
but if the file is binary, it gets a UnicodeDecodeError. Don't
assume that a file is text and just write the bytes directly.

Bug: b/358175830
Change-Id: Iaa259051b4157737397933e9d994c00e9da5836c
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5771938
Reviewed-by: Scott Lee <ddoman@chromium.org>
Commit-Queue: Gavin Mak <gavinmak@google.com>
10 months ago
Robert Iannucci a3fb9bad66 [scm] Mock global git config scope globally.
This will be useful for writing tests which rely on shared 'global'
config between different working directories.

This also adds support for mocking 'system' (global, immutable) and
'workspace' (local, mutable). The workspace scope I think is a bit iffy
though, given how `git cl` is actually built - currently scm.GIT doesn't
really know about clone vs. workspace, and afaik no config adjustements
actually apply to the workspace scope.

Adds tests for mocked git config implementation, including bug fixes
to the current implementation revealed by the tests.

R=ayatane, yiwzhang

Change-Id: Ia56d2a81d8df6ae75d9f8d0497be0d67bdc03651
Bug: 355505750
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5759163
Reviewed-by: Yiwei Zhang <yiwzhang@google.com>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
10 months ago
Robert Iannucci 126b52e8e5 [scm.py] Fix error with missing_ok in GitConfig.
Previously there was an error where you could have:

  global: {"key": ["something"]}
  local: {}

And called SetConfig("key", None, missing_ok=False) - this would end
up raising CalledProcessError(returncode=5) because the caching
layer would see that "key" was not missing, then call into the
storage layer which would do `git config --local ...` which was
missing "key" (and therefore fail).

R=ayatane, yiwzhang

Change-Id: Idc9dc63a1b1c0a4a203c403dbb3c2ea521099b26
Bug: 342644760
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5744333
Reviewed-by: Yiwei Zhang <yiwzhang@google.com>
Commit-Queue: Allen Li <ayatane@chromium.org>
Auto-Submit: Robbie Iannucci <iannucci@chromium.org>
10 months ago