Commit Graph

776 Commits (a85a4b01ee72af77de3a7245af1ffe81bac26acc)

Author SHA1 Message Date
Andrii Shyshkalov e263316d40 git cl: use project~number on Gerrit for GetChangeCommit.
R=ehmaldonado, hinoka

Bug: 876910
Change-Id: I6e288283c0033fb48a0b8ece8c06f6813f9a9d8a
Reviewed-on: https://chromium-review.googlesource.com/1186158
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Andrii Shyshkalov 2d0e03cb5d git cl: safe fallback for Gerrit RPCs even if gerrit project is unknown.
R=ehmaldonado

Bug: 876910
Change-Id: I258efa0a95f20b80819bc89cccfb5e0a29e09d5c
Reviewed-on: https://chromium-review.googlesource.com/1188989
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Andrii Shyshkalov 1e82867e3d git cl: restart using project~number on Gerrit.
This fixes Gerrit project detection based on remote URL,
accounting for potential 'a/' prefix in the URL path component,
which isn't part of the Gerrit project name.

R=ehmaldonado, mmoss

Bug: 876964, 876910
Change-Id: I473ae8c6c9e0f2034b350901abd67db151e0a3d3
Reviewed-on: https://chromium-review.googlesource.com/1187573
Reviewed-by: Michael Moss <mmoss@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
7 years ago
Andrii Shyshkalov 6365bc4446 git cl: temporary stop using project~number on Gerrit.
Broke release process.

R=ehmaldonado, mmoss

Bug: 876964, 876910
Change-Id: I02ea424632f5c5522af0010adce1c993e2610b48
Reviewed-on: https://chromium-review.googlesource.com/1187548
Reviewed-by: Michael Moss <mmoss@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
7 years ago
Andrii Shyshkalov d06cc78ec8 git cl: use project~number on Gerrit in more RPCs.
R=ehmaldonado, hinoka

Bug: 876910
Change-Id: Ie8a2dbf4c135f9f84c00c4d04d7ef1c2e9480e45
Reviewed-on: https://chromium-review.googlesource.com/1186157
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
7 years ago
Andrii Shyshkalov 81db1d5032 git cl: cache GetRemoteUrl result.
Sadly, this makes maintaining one test handling covering
exceptional circumstance very complex, so it was removed.

I've decoupled test that ensures that GetRemoteUrl works from
upload codepath.

R=ehmaldonado@chromium.org

Bug: 876910
Change-Id: I39de410c72d893e73492d5c3fc8f60a6ebc4f11f
Reviewed-on: https://chromium-review.googlesource.com/1186142
Reviewed-by: Ryan Tseng <hinoka@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
7 years ago
Andrii Shyshkalov 0ec9d15571 git cl: use project~number on Gerrit for better routing when setting reviewers
R=ehmaldonado@chromium.org

Testing
  patched my own depot_tools in $PATH and uploaded
  https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/1186072
  which set reviewers and ccs as expected.

Bug: 876910
Change-Id: I43c0f2284941cf703133bb51132226d4a0472d8e
Reviewed-on: https://chromium-review.googlesource.com/1186068
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Andrii Shyshkalov cc5f17eedc git cl: remove more unused func kwargs.
R=ehmaldonado

Change-Id: Ia35da60783cfbfd472646176d8fc669d8f4d9839
Reviewed-on: https://chromium-review.googlesource.com/1185989
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Andrii Shyshkalov b7214602e3 git cl: remove unused issue kwarg.
R=ehmaldonado

Change-Id: I5be27cb025f8237cef0186c90eb7b99d000076d9
Reviewed-on: https://chromium-review.googlesource.com/1185986
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Edward Lemur 6f812e132d metrics: Separate metrics collection and print notice logic.
As it is right now, when a function is collecting metrics it prints
the notice and calls sys.exit() to ensure the notice is the last thing
that is printed.

git-cl split has to call git-cl upload multiple times, but once it has
been called once, it exits, so only the first cl is uploaded.

This separates metrics collection from notice printing, so that the
function that is collecting metrics behaves like a function that isn't.
It also makes sure we don't collect metrics for multiple functions at
the same time.

Bug: 868280
Change-Id: Ic58ebe7d19e09ed85fa8b0af76dcbf608ee4c9bc
Reviewed-on: https://chromium-review.googlesource.com/1153503
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Edward Lemur ad463c9517 git-cl: Report known project urls.
Bug: 832386
Change-Id: I80bffe3df1b3097ca2d3939d101eb617f3077901
Reviewed-on: https://chromium-review.googlesource.com/1150442
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Edward Lemur 5ba1e9caee git cl: Start reporting metrics.
Bug: 832386
Change-Id: Iccb71c020aea31db33fc16050cb1100ccf5a7fbb
Reviewed-on: https://chromium-review.googlesource.com/1145902
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Deepanjan Roy 605dd3126a Format typescript with git cl format --js
Adds '.ts' to list of extensions to be handled by clang-format.

Change-Id: Ia00e59ba3ab617ebf248cfcf6df07dd98cdc14ce
Reviewed-on: https://chromium-review.googlesource.com/1120325
Reviewed-by: Ryan Tseng <hinoka@chromium.org>
Commit-Queue: Deepanjan Roy <dproy@chromium.org>
7 years ago
Sidney San Martín 8e6f58c7e6 Add an `--ignore-current` flag to `git cl owners` to start from scratch.
Change-Id: Iee6d7cf87281d4ca0abf71a7109f678d5cbbc9f1
Reviewed-on: https://chromium-review.googlesource.com/1091801
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Sidney San Martín <sdy@chromium.org>
7 years ago
Nodir Turakulov 23d75d2db4 [git-cl-try] Handle absence of builds
If there are no builds in build search response, the response is {}.
Handle this case.

R=qyearsley

Bug: 849361
Change-Id: I9f0472e140698a1d1c5b98b301bc562ac457785b
Reviewed-on: https://chromium-review.googlesource.com/1085899
Reviewed-by: Quinten Yearsley <qyearsley@chromium.org>
Commit-Queue: Nodir Turakulov <nodir@chromium.org>
7 years ago
Nodir Turakulov 9ac59795af Fix buildbucket bug filing instructions
Use Infra>Platform>Buildbucket component, not Infra-BuildBucket label.

R=qyearsley

Bug: 849361
Change-Id: I27706d93097a20c6927ffa5405550bb63aa519dd
Reviewed-on: https://chromium-review.googlesource.com/1085898
Reviewed-by: Quinten Yearsley <qyearsley@chromium.org>
Commit-Queue: Nodir Turakulov <nodir@chromium.org>
7 years ago
Nodir Turakulov af43f40eb2 Fix git cl format --python --full
Make `git cl format --python -full --dry-run` return non-zero exit code if
files are not well formatted.

Make `git cl format --python -full --diff` print diff, rather than new file
contents.

Change-Id: I666d360051563898d3508d776817bf9a61433cb0
Reviewed-on: https://chromium-review.googlesource.com/1081340
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Nodir Turakulov <nodir@chromium.org>
7 years ago
Jamie Madill 276da0b4d9 git cl: Do not set WIP when using no_squash.
When using non-squashed uploads, there usually isn't an associated
issue with a branch. Thus setting WIP when the issue tag wasn't
present would continually set WIP even on trivial rebases. Not
adding the WIP tag when uploading allows the user to set WIP manually,
while not forcing the WIP flag after every new upload.

Also updates the unit tests that use no-squash.

Bug: 767439
Change-Id: I990a82139fefe1a0c5c7b149d39045cf985539b7
Reviewed-on: https://chromium-review.googlesource.com/1033187
Commit-Queue: Jamie Madill <jmadill@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
7 years ago
Andrii Shyshkalov 98824231fc [git-cl] make more informative error message.
R=vadimsh@chromium.org

Change-Id: Ib0891581b7eb5cd49667e7ec07e73232cd4874cd
Reviewed-on: https://chromium-review.googlesource.com/1020067
Reviewed-by: Vadim Shtayura <vadimsh@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
7 years ago
Edward Lesmes 67b3faa8f2 git-cl: Add parallel option to git-cl land.
It is used by CMDland but it was not declared and is causing failures.

TBR=agable@chromium.org

Bug: 832566
Change-Id: Ia8ba5df458f9a39e415b7a9495dc338def0b16a5
Reviewed-on: https://chromium-review.googlesource.com/1013056
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Michael Moss <mmoss@chromium.org>
7 years ago
Olivier Robin 75ee7258f8 Fix call to RunHook in CMDLand
After https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/994241
RunHooks take a parallel parameter.
This call was not fixed in initial CL.

TBR=agable@chromium.org

Change-Id: Ic2a076afbd8ef61e3bb12473f43e1e7eab273825
Reviewed-on: https://chromium-review.googlesource.com/1011613
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Edward Lesmes 8e28279759 Reland "presubmit support: Run all tests in parallel."
Currently all tests in a PRESUBMIT.py file are run in parallel, but not
all tests across PRESUBMIT.py files.

This introduces a flag that will allow presubmit to run all tests across
PRESUBMIT files in parallel.

Bug: 819774
Change-Id: Idd3046cb3c85e9c28932a9789ba7b207a01d9f99
Reviewed-on: https://chromium-review.googlesource.com/994241
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
7 years ago
Aaron Gable 668c1d8d1f Reland "Remove Rietveld support from presubmit"
Since no one can upload or land changes from Rietveld anymore,
PRESUBMIT and its support files no longer need to be able to
support it.

Bug: 770408
Change-Id: I4ca6391291e7b0755c78af453c3d006ad3666a17
Reviewed-on: https://chromium-review.googlesource.com/991053
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
7 years ago
Aaron Gable aa6ddc6017 Revert "Remove Rietveld support from presubmit"
This reverts commit f3eed0016e.

Reason for revert: Some PRESUBMIT checks still expect 
CheckRietveldTryJobExecution to exist.

Original change's description:
> Remove Rietveld support from presubmit
> 
> Since no one can upload or land changes from Rietveld anymore,
> PRESUBMIT and its support files no longer need to be able to
> support it.
> 
> R=​tandrii@chromium.org
> 
> Bug: 770408
> Change-Id: I749092b66fdca16d5cef77e8cefc905aa5375b50
> Reviewed-on: https://chromium-review.googlesource.com/693380
> Commit-Queue: Aaron Gable <agable@chromium.org>
> Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>

TBR=agable@chromium.org,tandrii@chromium.org

Change-Id: I72e29bd8a9739406f29190adbeb7eb7718ed21cd
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 770408
Reviewed-on: https://chromium-review.googlesource.com/991012
Commit-Queue: Aaron Gable <agable@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
7 years ago
Aaron Gable fb28d48c74 git-cl-try: document auth_config for buildbucket
git_cl.py uses auth.py to authenticate to cr-buildbucket,
but when it does so, it caches the token under a key for the
current codereview host, not the buildbucket hostname.

This is confusing, but is the desired behavior, so that users
can use different credentials (e.g. chromium and google) when
communicating with buildbucket about CLs on different gerrit
hosts (e.g. chromium and chrome-internal).

To prevent other people from getting confused like I did,
add some documentation to this effect.

Change-Id: If16896d15423bbdecf9624393773ac01d0d16a66
Reviewed-on: https://chromium-review.googlesource.com/990674
Commit-Queue: Aaron Gable <agable@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Reviewed-by: Nodir Turakulov <nodir@chromium.org>
7 years ago
Aaron Gable f3eed0016e Remove Rietveld support from presubmit
Since no one can upload or land changes from Rietveld anymore,
PRESUBMIT and its support files no longer need to be able to
support it.

R=tandrii@chromium.org

Bug: 770408
Change-Id: I749092b66fdca16d5cef77e8cefc905aa5375b50
Reviewed-on: https://chromium-review.googlesource.com/693380
Commit-Queue: Aaron Gable <agable@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
7 years ago
Ravi Mistry 31e7d56c28 Support setting Auto-Submit during "git cl upload"
Bug: chromium:631551
Change-Id: I1f0c397d13d601a8ecac8328b6d7bf3c117c8297
Reviewed-on: https://chromium-review.googlesource.com/986286
Commit-Queue: Ravi Mistry <rmistry@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
7 years ago
Robert Iannucci 2e73d43870 [git_cl] Remove rietveld CMDland implementation.
R=agable@chromium.org, tandrii@chromium.org

Change-Id: I2bfed54a9a1bde3335340e5949eac313c3fdda32
Reviewed-on: https://chromium-review.googlesource.com/961970
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
7 years ago
Andrii Shyshkalov f9648b5c7c git cl try: support custom --category.
Over last two weeks of running tryjobs on CLs of others, I found
this very useful. This CL also simplifies code.

R=agable@chromium.org

Change-Id: I5c7ce0d311b1ca024b92227dbec54e5197205c62
Reviewed-on: https://chromium-review.googlesource.com/930742
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
7 years ago
Nodir Turakulov b422e687a5 [git-cl-try] update builders-map response handling
Remove code path.

Update new code path to expect one bucket, instead of a list.
Related:
https://chromium-review.googlesource.com/c/infra/infra/+/927792

TBR=tandrii@chromium.org
Bug: 800355
Change-Id: I60fbcf92dc242fc9b448760aaa5399320e257323
Reviewed-on: https://chromium-review.googlesource.com/928053
Commit-Queue: Nodir Turakulov <nodir@chromium.org>
Reviewed-by: Nodir Turakulov <nodir@chromium.org>
7 years ago
Aaron Gable 13101a6e42 Remove similarity support from git-cl
The purpose of this CL is to remove confusion around whether or
not git-cl support the similarity flags when talking to Gerrit.
It does not. However, because Rietveld support has not been
fully ripped out of git-cl, this change does modify some of the
Rietveld-specific code to remove similarity support from everywhere.

Bug: 800902
Change-Id: I8703ed60d6889c7a36400b8a9f8f26de4669020a
Reviewed-on: https://chromium-review.googlesource.com/912389
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
7 years ago
Edward Lemur 707d70b91e Skip files owned by reviewers when quering for missing owners.
Bug: 728298
Change-Id: If813ff41b1668a2cab6c26b65e424fbe574e629c
Reviewed-on: https://chromium-review.googlesource.com/899086
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
7 years ago
Aaron Gable 5d5f22ce9d Remove prompts to contact maruel
R=maruel

Change-Id: I0a5a18d598632bc77a8c70a21c8b3c4c2223d543
Reviewed-on: https://chromium-review.googlesource.com/899682
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
7 years ago
Aaron Gable 697a91b72a git-cl-patch: fail if patching from a different repo
I don't know of any use-case where someone would want to
use git-cl-patch to pull a (e.g.) chromium change into
their (e.g.) v8 checkout.

Bug: 803918
Change-Id: Id53f1cc3ab97e623d0098bb366a573b18b54e91a
Reviewed-on: https://chromium-review.googlesource.com/876930
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
7 years ago
Nodir Turakulov 44e01ff306 [git-cl-try] accept buckets from builders-map app
Context:
https://bugs.chromium.org/p/chromium/issues/detail?id=800355#c22

Prepare git-cl-try to a new format of builders-map.appspot.com response
where each entry contains buckets, as opposed to masters.

Bug: 800355
Change-Id: I5a90c6c4860a7e1fca843067c477a272d782cba1
Reviewed-on: https://chromium-review.googlesource.com/885100
Commit-Queue: Nodir Turakulov <nodir@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
7 years ago
Bruce Dawson 2377b01e6c Treat "Bug:" as an empty line in git cl upload
The default description in the editor when you invoke "git cl upload"
includes recent commit descriptions, some blank lines and comments, and
"Bug: ". The upload script properly strips out the comments but was
leaving in the "Bug:" line. This leads to CLs with blank Bug: lines,
which is sloppy. It also means that if a user changes their mind and
closes the upload editor without adding any content... they would still
have a CL created.

This change removes the "Bug: " line if nothing has been added to it,
thus avoiding uploading a change with an empty description, and avoiding
having meaningless Bug: lines.

Change-Id: I18c2094e5712d31729899c0ebd0a52de97dc4e7f
Reviewed-on: https://chromium-review.googlesource.com/861920
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Bruce Dawson <brucedawson@chromium.org>
7 years ago
Koji Ishii 31c14787e4 Add issue option to "git cl try"
This patch adds the standard issue option (-i/--issue) to
"git cl try" command.

This is useful for maintaining FlagExpectations with fyi bots.
Runtime-flag features often see new failures, and a good number
of tests are flaky. Maintainers can upload a CL and use cron to
run try jobs to collect multiple tests results to find new
failures and flaky tests.

Change-Id: I069593950023ddae814faf3074c33de4c98cb70e
Reviewed-on: https://chromium-review.googlesource.com/850792
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Koji Ishii <kojii@chromium.org>
7 years ago
Lei Zhang d3f769a710 Change "ldap" to "username".
Change-Id: Ic993758ea901d039c5fdac978e516ba20f95005d
Reviewed-on: https://chromium-review.googlesource.com/830611
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Lei Zhang <thestig@chromium.org>
7 years ago
Chris Watkins ba28e460fb Add a --dry-run option to git cl split
git cl split previously had no way to find out what it would do before
it went ahead and uploaded CLs. Now you can use --dry-run to get it
to print info about each CL it would upload.

Change-Id: If2ac74a89b0a8b30d86819e16ece46f487b1e7c7
Reviewed-on: https://chromium-review.googlesource.com/821336
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Chris Watkins <watk@chromium.org>
7 years ago
Aaron Gable f4068aa3ea Use core.quotePath=false for more git diffs
This includes a minor refactor so that some gclient_scm methods
can all share the same core.quotePath specifier.

R=iannucci

Bug: 792302
Change-Id: Iaadf190f5c0666787cf7c2ccda88d6dba9aace9b
Reviewed-on: https://chromium-review.googlesource.com/823131
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
7 years ago
Aaron Gable 7817f02543 Reland "Use core.quotePath=false when git is listing files"
This is a reland of 9219d35688

The original was reverted due to a typo (core,quotePath instead
of core.quotePath). This version is fixed.

Original change's description:
> Use core.quotePath=false when git is listing files
>
> This prevents git from putting quotes around some file names
> (those that have astral-plane characters) and not around others.
>
> R=maruel
>
> Bug: 792302
>
> Change-Id: I3b6a6b36c4720116de811b40177b59aa25c263db
> Reviewed-on: https://chromium-review.googlesource.com/815454
> Commit-Queue: Aaron Gable <agable@chromium.org>
> Reviewed-by: Marc-Antoine Ruel <maruel@chromium.org>

Bug: 792302
Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: build_limited_scripts_slave
Change-Id: I28d2260948aaf63bd865888c2f60e4cdee9aea48
Reviewed-on: https://chromium-review.googlesource.com/822990
Commit-Queue: Aaron Gable <agable@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
7 years ago
Quinten Yearsley a563d7222f Add more fields to try-results --json for WPT importer
Context: The WPT importer consumes the JSON produced by
git cl try-results is consumed and uses it to determine
when the CQ has passed (whether all non-experimental cq
jobs were successful) and where layout test results are
stored.

Added fields:
  created_ts: This could be used to sort builds by time.
  tags: Includes user_agent tag and experimental tag, as well as
  experimental: whether the job is experimental

Bug: 792652
Change-Id: Ic6099a21b21db668b88b1a8e54aefd84529a2a91
Reviewed-on: https://chromium-review.googlesource.com/819573
Commit-Queue: Quinten Yearsley <qyearsley@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
7 years ago
Robbie Iannucci 6aaee3065c Revert "Use core.quotePath=false when git is listing files"
This reverts commit 9219d35688.

Reason for revert: unfortunately this says "core,quotePath" and since it includes recipe changes, we need something that the roller can munch on :(

Original change's description:
> Use core.quotePath=false when git is listing files
> 
> This prevents git from putting quotes around some file names
> (those that have astral-plane characters) and not around others.
> 
> R=​maruel
> 
> Bug: 792302
> Recipe-Nontrivial-Roll: build
> Recipe-Nontrivial-Roll: build_limited_scripts_slave
> Change-Id: I3b6a6b36c4720116de811b40177b59aa25c263db
> Reviewed-on: https://chromium-review.googlesource.com/815454
> Commit-Queue: Aaron Gable <agable@chromium.org>
> Reviewed-by: Marc-Antoine Ruel <maruel@chromium.org>

TBR=maruel@chromium.org,agable@chromium.org

Change-Id: I226388f19024403240a1443eb2b878b9293220e1
No-Presubmit: true
No-Tree-Checks: true
No-Try: true
Bug: 792302
Reviewed-on: https://chromium-review.googlesource.com/821671
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Robbie Iannucci <iannucci@chromium.org>
7 years ago
Aaron Gable 9219d35688 Use core.quotePath=false when git is listing files
This prevents git from putting quotes around some file names
(those that have astral-plane characters) and not around others.

R=maruel

Bug: 792302
Recipe-Nontrivial-Roll: build
Recipe-Nontrivial-Roll: build_limited_scripts_slave
Change-Id: I3b6a6b36c4720116de811b40177b59aa25c263db
Reviewed-on: https://chromium-review.googlesource.com/815454
Commit-Queue: Aaron Gable <agable@chromium.org>
Reviewed-by: Marc-Antoine Ruel <maruel@chromium.org>
7 years ago
Aaron Gable e8856eea42 git-cl: fix 'status --field=patch' for Gerrit
We don't set the branch.<name>.gerritpatchset git config value
during "git cl upload" because it isn't returned from the
server either during push or during any of our subsequent RPCs,
and adding another RPC just for that metadata would be slower
that we would like.

But calling "git cl status" already makes an RPC per branch, so
take advantage of that to cache the gerritpatchset value during
that operation.

R=robertma

Bug: 792611
Change-Id: I37b09f3c4cfced86668b457eff82f2424012b14b
Reviewed-on: https://chromium-review.googlesource.com/815137
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Aaron Gable ad64abd69a git-cl: Fix 'git cl issue --reverse'
While ripping SVN support out of git-cl, the Changelist() constructor
changed to require that the branch name start with "refs/heads/",
but the CMDissue --reverse code was never updated to feed it the
fully-qualified refname.

R=thestig

Bug: 791176
Change-Id: Ia7fee0f77fec080d91f34ad43bfd9f7c6a4bf64b
Reviewed-on: https://chromium-review.googlesource.com/806239
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Aaron Gable 8076c2854d Give git-cl-presubmit an --all option
This will let developers run PRESUBMIT against all files in the
repo, rather than just those their CL touches. This will be
particularly helpful when modifying PRESUBMIT.py itself.

R=maruel@chromium.org

Bug: 519046
Change-Id: I5775eef8aecefe0cd358537c9218afc7480a7619
Reviewed-on: https://chromium-review.googlesource.com/798056
Commit-Queue: Aaron Gable <agable@chromium.org>
Reviewed-by: Marc-Antoine Ruel <maruel@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Daniel Cheng 7227d2175a Add OutputApi.AppendCC to allow presubmit checks to add CCs
Bug: 786386
Change-Id: If29acf287355d150e0f89f45b2f7aa87a08dcc57
Reviewed-on: https://chromium-review.googlesource.com/776645
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Daniel Cheng <dcheng@chromium.org>
8 years ago
Nodir Turakulov 23b8214cec [git-cl] refactor hash tags support
Addressing comments in
https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/764974
that were sent after the CL landed.
Bug:
Change-Id: I6e0a583999e1c22f86d0f6b905aa5fae62b194d5
Reviewed-on: https://chromium-review.googlesource.com/775453
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Nodir Turakulov <nodir@chromium.org>
8 years ago
Nodir Turakulov d0e2cd280c [git-cl] add support for hashtags
If a commit subject contains [hashtags], include them in Gerrit CL.
Replace consecutive non-alphanums with dash.

Also add --hashtag flag for explicit hashtagging.

Bug:
Change-Id: I25aed286013043263f959ff340a5b5478faa0f27
Reviewed-on: https://chromium-review.googlesource.com/764974
Commit-Queue: Nodir Turakulov <nodir@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
8 years ago
Gabriel Charette 02b5ee82e3 More descriptive git cl split --help info about $directory
R=iannucci@chromium.org

Bug:
Change-Id: Icf44fd71f1521a9e7f0eb8c4710924a5e45b541b
Reviewed-on: https://chromium-review.googlesource.com/759131
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Gabriel Charette <gab@chromium.org>
8 years ago
Nick Carter 8692b18870 Allow punctuation in patch set titles by means of percent encoding.
Bug: 663787
Change-Id: Ie7e2fca42db0c840d713dc6edba5dc0c2b65223d
Reviewed-on: https://chromium-review.googlesource.com/676086
Reviewed-by: Aaron Gable <agable@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Nick Carter <nick@chromium.org>
8 years ago
Aaron Gable 9a03ae0833 git-cl-upload: write commit description to file
Bug: 780540
Change-Id: I85bf40d8faa482786589f9031e34f364342c06dd
Reviewed-on: https://chromium-review.googlesource.com/754003
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Aaron Gable 4db38df069 git-cl: remove documentation regarding git diff args
R=tandrii

Bug: 768445
Change-Id: I04605b3e95b08d71aedde23c97b6ca985f030eb6
Reviewed-on: https://chromium-review.googlesource.com/753131
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Dominic Battre 7d1c484ecd Extract bug number from branch name for git cl upload
If you name your branches "bug-123-fix-foobar" or "123-fix-foobar", git cl
upload will automatically populate the "Bug: " line in the cl description with
123.

Bug: 778252
Change-Id: I5bf570d5d44e8681c552a52a8b5ed0c64ce82284
Reviewed-on: https://chromium-review.googlesource.com/738237
Commit-Queue: Aaron Gable <agable@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
8 years ago
Stefan Zager d08043c72c Allow 'git cl patch' when not on a branch.
R=agable@chromium.org,tandrii@chromium.org

Bug:
Change-Id: I83c285c333a21f2ed0138723a1cd5347e65f41ae
Reviewed-on: https://chromium-review.googlesource.com/710742
Commit-Queue: Stefan Zager <szager@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
8 years ago
Stefan Zager 2d5f039dbf Support --nocommit option to git-cl-patch for gerrit.
R=agable@chromium.org,tandrii@chromium.org

Bug:
Change-Id: I7a5ec6ca1bb05d67b1ddbee60eac89d57464a480
Reviewed-on: https://chromium-review.googlesource.com/710007
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Stefan Zager <szager@chromium.org>
8 years ago
Stefan Zager 27db3f2c01 Add --issue option to 'git cl try-results'
Sometimes I want to get try bot results without checking out the
relevant branch.

R=agable@chromium.org

Bug:
Change-Id: I89d118962ee37b10d95cf4044b61a0f2234b7e60
Reviewed-on: https://chromium-review.googlesource.com/710500
Commit-Queue: Stefan Zager <szager@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Nodir Turakulov f6929a122f [git-cl-try] handle -m luci.foo.bar
If -m option value starts with "luci.", most probably the user intends
to schedule a build on a LUCI bucket. Print an error message asking
the user to use -B option.

Bug: 749696
Change-Id: If7a038a1f629ee808e3261ae1c753e388bfea893
Reviewed-on: https://chromium-review.googlesource.com/707534
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Nodir Turakulov <nodir@chromium.org>
8 years ago
Aaron Gable a718c3ebd3 Simplify git-cl-diff for Gerrit
Previously, git-cl-diff went through a dance where it would create
a new branch, download the uploaded patch onto that branch, and
then diff against that. This had all sorts of problems: if you
aborted the command, it might leave you on that branch; if you have
local changes, they might get clobbered or the command would refuse
to run.

Now that we're in a Gerrit-only world, and patchsets are by definition
equivalent to commits, we can simply diff against whatever local commit
was last uploaded or, in a pinch, fetch the uploaded commit and diff
against that.

Bug: 759893
Change-Id: Ia4b93dcfb9b8aba85817e62731f68d6450026e75
Reviewed-on: https://chromium-review.googlesource.com/639915
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Yoshisato Yanagisawa 81e3ff5242 git-cl upload: adjust code-review score on TBR.
Since git-cl TBR always sets +1, it does not allow auto-submit where
using +2 score as approval.  Let me make git-cl automatically adjust
to proper score.

Bug: 762425
Change-Id: I71fe1af1b8bf5e68d2509c60e8bf05024b6bdbb7
Reviewed-on: https://chromium-review.googlesource.com/680717
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Yoshisato Yanagisawa <yyanagisawa@chromium.org>
8 years ago
Aaron Gable 289b43183e git-cl: Parse new change urls containing project paths
Bug: 764848
Change-Id: I639451ad54eb50a405fe44b9a83b00d84ec76578
Reviewed-on: https://chromium-review.googlesource.com/665998
Reviewed-by: Sergey Berezin <sergeyberezin@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Aaron Gable edbc41320d git-cl upload: Send mail when starting CQ
R=tandrii@chromium.org

Bug: 762009
Change-Id: I29a4ca06e0d29f5acb6c516d413fa2a35f8a5629
Reviewed-on: https://chromium-review.googlesource.com/661317
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Aaron Gable d10ca0eaca Add GCE instructions to git cl creds check
R=tandrii@chromium.org

Bug: 740292
Change-Id: I0bad42e7eb58b6471ffc4bd3305677051b25e8fc
Reviewed-on: https://chromium-review.googlesource.com/660415
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Edward Lemur 32357d33ec WebRTC: Update source-of-truth for 'git-cl'
Bug: 751635
Change-Id: I503dc5d108c314ef617af2e46e937bc63cd087b9
Reviewed-on: https://chromium-review.googlesource.com/660703
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
8 years ago
Aaron Gable 7139a4e23c git-cl set_close: Don't fail on branches with no issue
R=tandrii@chromium.org

Bug: 258661
Change-Id: Iee910d6d01df4c675523abdaf4e505364f94c4aa
Reviewed-on: https://chromium-review.googlesource.com/651233
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Dirk Pranke bf98088faf Add a --batch mode to `git-cl owners`.
This allows a script to generate a sufficient list of owners (and 
reviewers) for a given CL. Unlike the owners presubmit check and 
the normal, interactive mode of `git-cl owners`, we do not print 
the comments associated with an owner for each file, since 
presumably a script doesn't care about them (and the comments
aren't in a particularly machine-parsable form, anyway).

This could be used by the WPT import scripts, and presumably
by roll scripts and other such things.

I didn't add a test for this because there appears to be no good
mechanism for testing top-level CMD functions in git_cl that 
didn't end up just repeating the code mock-for-mock :(.

R: phajdan.jr@chromium.org
Change-Id: I3a9e6d117d6f4bafe938b07b028f119835c3e575
Reviewed-on: https://chromium-review.googlesource.com/648653
Reviewed-by: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Commit-Queue: Dirk Pranke <dpranke@chromium.org>
8 years ago
Ilya Sherman 235b70db85 [git cl format] Actually format metrics XML files (fix an indentation error)
I introduced an indentation error in [1] which caused "git cl format" to
typically do nothing for histograms.xml and other metrics XML files. Oops.

[1] https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/569105

R=dpranke@chromium.org

Bug: 757939
Change-Id: Iab9975588156fca29e119e889ae634c5f77cb704
Reviewed-on: https://chromium-review.googlesource.com/627590
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Commit-Queue: Ilya Sherman <isherman@chromium.org>
8 years ago
Aaron Gable 01b9106917 Support new urls in git-cl
This adds support for the new urls (which contain the project) to
git-cl [description|checkout|issue|patch] and others.

Bug: 757602
Change-Id: I6e854a85e655e14daa7e4172ca938953778bf514
Reviewed-on: https://chromium-review.googlesource.com/634518
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Ilya Sherman e081cbe5aa [git cl format] Pass --presubmit flag when formatting from presubmit.
This allows us to skip 'git cl format' for histograms.xml, which in
turn allows us to issue a presubmit error rather than a warning when
that file is malformatted, without running the formatting code twice.
The formatter is somewhat slow for this file, so it's helpful to avoid
duplicating that work.

BUG=none
TEST=none
R=iannucci@chromium.org

Change-Id: Ia86d45c7c56a9f89db34ca7175ef686589084f85
Reviewed-on: https://chromium-review.googlesource.com/569105
Commit-Queue: Ilya Sherman <isherman@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
8 years ago
Andrii Shyshkalov 0d2dea0a5f git cl creds-check: special case parsing of chromium.org emails.
R=phajdan.jr@chromium.org

Change-Id: Ia1380bc0cfff50e82f9a26d3c54e9dc34a38c7b5
Reviewed-on: https://chromium-review.googlesource.com/574528
Commit-Queue: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
Reviewed-by: Paweł Hajdan Jr. <phajdan.jr@chromium.org>
8 years ago
Aaron Gable f7543cddc3 git-cl: accept --force for -f everywhere
TBR=tandrii@chromium.org

Change-Id: I2feddebee6d667c6c60ec1a306d175adff262be5
Reviewed-on: https://chromium-review.googlesource.com/580362
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Aaron Gable ca01e2c8dc git cl issue 0: Remove Change-Id from message, not description
Using self.GetDescription() uses the description from the web.
Given that the user is purposefully disassociating their current
branch from the review on the web, they may have already changed
the commit message. We shouldn't set it back.

Bug: 742730
Change-Id: I0545cb6288c332fd475d1de7fb302f71ee41a415
Reviewed-on: https://chromium-review.googlesource.com/578229
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Aaron Gable fc62f76824 Simplify notify behavior in git-cl
Change-Id: I872658970c04cdadda2b0eaffd95e10717c09493
Reviewed-on: https://chromium-review.googlesource.com/575009
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Aaron Gable e5adf61266 Fix typo with --send-email [sic] flags
The actual flag is --send-mail. Also includes a fix
to publish these changes if a comment is included.

Bug: 740950
Change-Id: I38ca0a35c1364c8364eb0ef301137c04daede40b
Reviewed-on: https://chromium-review.googlesource.com/572033
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Aaron Gable 636b13fc3d Let Changelist().AddComment() mark changes as Ready
In Rietveld, adding a comment to a change automatically
published it no matter what. In Gerrit, we need to explicitly
mark the change as Ready for Review. This CL adds a new
parameter to the wrapper methods around the SetReview
API so that they can mark changes as Ready.

Bug: 740950
Change-Id: Icb2ad7c5beb03a4760657a761841745f0d75514e
Reviewed-on: https://chromium-review.googlesource.com/572031
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Aaron Gable 4e5207d6f0 git-cl issue 0: Don't operate on empty description
TBR=tandrii

Bug: 741648
Change-Id: If9bcab1892e30ea5fae127302da12f0d9a201cb8
Reviewed-on: https://chromium-review.googlesource.com/570181
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Aaron Gable 400e989b1b 'git cl issue 0': Remove Change-Id
Although git-cl-upload warns when uploading a new patchset
to a change owned by someone else, if the uploader has run
'git cl issue 0', then git-cl believes they'll be uploading
a new change, so it doesn't bother checking. However, once
the upload begins, Gerrit notices the Change-Id in the commit
message, and instead adds a new patchset to someone else's
review (if the uploader is a committer).

This change introduces some logic to git-cl-issue to also
remove any Change-Id from the commit message when a user
tries to clear the metadata about their branch.

Bug: 741648
Change-Id: I6c7c3b24a7fc09c68220c8200b732fbdf9cf1fd3
Reviewed-on: https://chromium-review.googlesource.com/568267
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Andrii Shyshkalov c81738256b git cl creds-check: improve report and give better recommendation.
R=machenbach@chromium.org,agable@chromium.org
Bug: N/A
Change-Id: I831e9e72c8687c248022f49ea405e149538ef02a
Reviewed-on: https://chromium-review.googlesource.com/563671
Reviewed-by: Michael Achenbach <machenbach@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Andrii Shyshkalov de37c01295 Fix git-numberer swallowing of footers for Rietveld.
Due to relaxation of when last paragraph of commit message is
is consider as containing footers, `git cl land` started removing
non-canonic footer lines from last paragraph if Git Numberer is enabled
on a repo. This only manifests in manual lands of Rietveld CLs or
bypassing code review entirely.

R=agable@chromium.org
Bug: 736852
Change-Id: I3972c590c3959974157ada9de9891a3c08bd385a
Reviewed-on: https://chromium-review.googlesource.com/562278
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Anna Henningsen 4e89144a75 git-cl: fix auth error message computation
Bug:
Change-Id: Ic57563b131ff7e50985748eeb3d55e4b69b8db87
Reviewed-on: https://chromium-review.googlesource.com/562279
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Aaron Gable 665a4398b5 git-cl-upload: warn if no rietveld project specified
Bug: 600469
Change-Id: I4ebc7b0f28204ae4a4649e51d6aac8fc2f43ed20
Reviewed-on: https://chromium-review.googlesource.com/556152
Reviewed-by: Andrew Bonventre <andybons@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Aaron Gable 844cf2963b git-cl: only set WIP on first upload
It seems like some folks are confused by additional patchsets
after the first putting the change back into WIP mode. This
confusion is honestly understandable. Maybe we try only setting
it on the very first upload, and just controlling the notify
parameter for future patchsets.

Bug: 721836, 737675
Change-Id: If56e5c71e0c6b3b46c2e30ac0b6d80b878218181
Reviewed-on: https://chromium-review.googlesource.com/552779
Reviewed-by: Quinten Yearsley <qyearsley@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: smut <smut@google.com>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Aaron Gable afd5277778 git-cl-upload: make it possible to exit WIP mode
The previous CL forgot that the lack of '%wip' doesn't
mark a change ready-to-review, you have to explicitly pass
'%ready' in the refspec to do that.

TBR=tandrii@chromium.org

Bug: 721836
Change-Id: Iea82222d64edf1b73fefa9bca3feec4188e35ab3
Reviewed-on: https://chromium-review.googlesource.com/551005
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Aaron Gable 70f4e24d15 git-cl: upload changes in WIP unless --send-mail
Work-In-Progress is a new change flag that can be set on
Gerrit changes. While a change is in WIP mode, certain things
are different:
* It doesn't send emails except to the change owner
* The "Reply" button becomes "Start Review"
* When a change is moved out of WIP, it sends a special
  "ready for review" message to any new reviewers
This is much more similar to the Rietveld model, where users
would "Publish" their changes for the reviewers to look at.

Bug: 721836
Change-Id: I3b9697e311fa176cb679ecefbfead9bb32b6afaf
Reviewed-on: https://chromium-review.googlesource.com/549015
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Reviewed-by: Quinten Yearsley <qyearsley@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Aaron Gable aee6c85272 git-cl-issue: respect --gerrit/--rietveld with integer argument
Bug: 736816
Change-Id: I56d222a3aad684f51c8c47f302c8a298b7a0469a
Reviewed-on: https://chromium-review.googlesource.com/549060
Commit-Queue: Aaron Gable <agable@chromium.org>
Reviewed-by: Quinten Yearsley <qyearsley@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Stefan Zager 1306bd03c9 Support dumping json to stdout.
Change-Id: I2e7243f1b9243ec98df54bd9f78b98cba8743217
Reviewed-on: https://chromium-review.googlesource.com/544792
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Stefan Zager <szager@chromium.org>
8 years ago
Aaron Gable 62619a3811 git-cl-patch: Return to cherry-pick, but hard reset with --force
This is a partial revert of https://chromium-review.googlesource.com/c/527345/
Turns out more people were confused by the new behavior than
expected, so we're returning to "cherry-pick" being the default,
but supporting the collaboration workflow is important, so we're
adding a warning message and support for "reset --hard" behind a
pre-existing flag.

Bug: 723787
Change-Id: Ib6038a42e3bdcc0db93c1f32d759e9ff0e91a065
Reviewed-on: https://chromium-review.googlesource.com/538137
Commit-Queue: Aaron Gable <agable@chromium.org>
Reviewed-by: Dirk Pranke <dpranke@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Aaron Gable 78753da20e Accept URLs in 'git cl issue'
There's no reason not to, since it is pretty easy, and other
commands like "git cl patch" already do so.

Bug: 733715
Change-Id: I3396153ef11bfdbbf09b8a7f54f9a5b1047e290f
Reviewed-on: https://chromium-review.googlesource.com/537113
Reviewed-by: Robbie Iannucci <iannucci@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Aaron Gable 75e7872acf Convert notify parameter inside gerrit_util
Bug: skia:6744
Change-Id: I0f84bd685bfacf692190f8636208122cf88d0b82
Reviewed-on: https://chromium-review.googlesource.com/529016
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Andrii Shyshkalov 354e1d23e0 git cl: improve warning.
R=agable@chromium.org

Bug: 728150
Change-Id: I3b2a843ac44bf447ce27a6d901d72a1c8035f496
Reviewed-on: https://chromium-review.googlesource.com/529112
Reviewed-by: Aaron Gable <agable@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Aaron Gable bacbdb9a55 git-cl-patch: fix --is-ancestor flag
TBR=tandrii@chromium.org

Bug: 723787
Change-Id: Ie5017747f2070116774cd12ba0dd2ea531b2d0aa
Reviewed-on: https://chromium-review.googlesource.com/529547
Reviewed-by: Aaron Gable <agable@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Andrii Shyshkalov 2c376aa21b git cl: Fix incorrect notify parameter when setting TBR.
Follow up on https://chromium-review.googlesource.com/c/527325/

R=agable@chromium.org,rmistry@chromium.org

Bug: chromium:729967
Bug: skia:6744
Change-Id: I7443298797a7c95c8ca01624e3cbf08c95e04855
Reviewed-on: https://chromium-review.googlesource.com/529246
Reviewed-by: Ravi Mistry <rmistry@chromium.org>
Commit-Queue: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Aaron Gable 9387b4f0be Make gerrit 'git cl patch' use hard reset by default
This CL changes the way that "git cl patch" behaves for Gerrit changes.

Previously, git-cl-patch behaved just like it did for Rietveld:
make sure you're on a branch, download the diff, apply it on top
of your branch. However, this causes problems with Gerrit. Namely,
when you upload a change to Gerrit, git-cl has to make sure that all
parents of your local change have previously been uploaded as well,
either as other changes or as commits already landed on the target
branch. But the method for "applying a patch" from Gerrit was to
cherry-pick it, and that changes the commit hash. So the resulting
commit would *not* have been uploaded to Gerrit. Thus, the
following routine didn't work with Gerrit:
$ git checkout -t origin/master -b your-work
$ git cl patch 123456
$ git checkout -tb my-work
$ #hack and commit
$ git cl upload
This would fail during the upload with a message saying that the
contents of 'your-work' hadn't been uploaded.

This CL fixes the situation by replacing the cherry-pick with
a hard reset. This means that the contents of the 'your-work'
branch will be *exactly* what was downloaded from Gerrit. Uploads
based on top of that commit will work just fine.

Finally, in a concession to some people who want 'git cl patch'
to actually apply a patch instead of performing a hard reset, if
the current branch contains local work, then rather than leaving
that work behind with a hard reset, we fall back to the old
cherry-pick behavior with a confirmation dialog and warning that
uploading will be hard.

Bug: 723787
Change-Id: I3ad164f6d3078bff00139d446bb8ce97738a1344
Reviewed-on: https://chromium-review.googlesource.com/527345
Commit-Queue: Aaron Gable <agable@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Aaron Gable 7303dcb9b3 Use whole --message argument on patchset upload
The logic for handling --title, --message, and the
commit message of the most recent commit was accidentally
doing this differently from how Rietveld had done them.

Bug: 728391
Change-Id: I70a46ccb470d790103f5d6bb745902595be28eee
Reviewed-on: https://chromium-review.googlesource.com/527339
Commit-Queue: Aaron Gable <agable@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Aaron Gable fd238086f1 Use API to set TBR code-review
This prevents TBR (self code-review) permissions from blocking
the CL from being uploaded at all. Instead, it will fully
upload, and then show a better error message after upload is
complete.

Bug: 729967
Change-Id: I55e3e98e200143076afcaab858064d9f5c62f8ef
Reviewed-on: https://chromium-review.googlesource.com/527325
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
Commit-Queue: Aaron Gable <agable@chromium.org>
8 years ago
Aaron Gable 0ffdf2de15 git-cl-comments: Support Gerrit file- and line-comments
This brings the gerrit version of "git cl comments" into line
with the Rietveld implementation by including file- and line-level
comments as well as top-level review comments. It requires an
extra API call to do so, so this may result in some slow-down, but
the result is worth it.

It formats the comments to match the formatting used in the
PolyGerrit UI, with the addition of visible URLs linking to
the comment since we can't hyperlink text in the terminal.

This CL also causes it to ignore messages and comments with
the 'autogenerated' tag, which are generally less interesting
and clutter the output.

Bug: 726514
Change-Id: I1fd939d90259b43886ddc209c0e727eab36cc9c9
Reviewed-on: https://chromium-review.googlesource.com/520722
Commit-Queue: Aaron Gable <agable@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Quinten Yearsley 0c62da9864 git_cl: Clean up spelling, docstrings and printed messages.
This mostly changes simple typos, e.g.:
strack->stack
assosiated->associated
unsettin->unsetting
diangose->diagnose
desciption->description
commment->comment

This CL also changes some docstrings and capitalizes
some printed messages.

Change-Id: I758b47f069a6de2d0d94a76ff85587bdc51c9daf
Reviewed-on: https://chromium-review.googlesource.com/519614
Commit-Queue: Quinten Yearsley <qyearsley@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Quinten Yearsley fc5fd927e2 Print CQ dry run messages/warnings consistently across commands.
For a bit of context, see the TODO in the code --
I think that the original intent of that TODO was that we to make
the way that CQ dry runs are triggered consistent, and also make
the behavior of dry runs consistent across different commands.

Change-Id: I80dfc31ade302a6af7fa84011e2871d416ea9c96
Reviewed-on: https://chromium-review.googlesource.com/518930
Commit-Queue: Quinten Yearsley <qyearsley@chromium.org>
Reviewed-by: Andrii Shyshkalov <tandrii@chromium.org>
8 years ago
Francois Doray d42c68114c Add git cl split.
`git cl split` splits a branch into smaller branches and
uploads CLs.

Change-Id: Ic41cdabdd6241008ff48766e31a8d9d07995f2b0
Reviewed-on: https://chromium-review.googlesource.com/439706
Commit-Queue: Francois Pierre Doray <fdoray@chromium.org>
Reviewed-by: Aaron Gable <agable@chromium.org>
8 years ago