The subcommends "description" and "diff" in git-cl could not print the
help message even if --help was provided.
BUG= 473406
Review URL: https://codereview.chromium.org/1053103002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@294663 0039d316-1c4b-4281-b951-d872f2087c98
This CL makes git-map-branches show CL status colors like git cl status
when -vvv is used. Statuses are fetched in parallel for speed.
BUG=379849
Review URL: https://codereview.chromium.org/938583002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@294414 0039d316-1c4b-4281-b951-d872f2087c98
Add the ability to lookup the branch(es) corresponding to a specific
issue. This helps keep track of issues when switching between multiple
branches.
BUG=None
TEST=None
Review URL: https://codereview.chromium.org/969263002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@294307 0039d316-1c4b-4281-b951-d872f2087c98
Context:
In https://codereview.chromium.org/781523002/ I added the ability for target_ref to be set to any branch name. Eg: For Skia a ref of 'refs/remotes/origin/chrome/m42' would be correctly set to 'refs/heads/chrome/m42'.
But in https://codereview.chromium.org/822503005/ this was changed to treat any branch that did not start with 'refs/remotes/branch-heads' or 'refs/remotes/origin/refs' to be 'refs/remotes/origin/master'.
This makes it very chromium specific, there are plenty of other projects that use depot_tools that does not work like this.
For Skia 'refs/remotes/origin/chrome/m42' would now change to 'refs/remotes/origin/master' which is wrong.
The default behavior should be to preserve the original ref not to override it to master.
I handled 'lkgr' and 'lkcr' as special cases in this CL because many developers track it and would like it to land in master by default.
BUG=chromium:463109
NOPRESUBMIT=true
Review URL: https://codereview.chromium.org/967453004
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@294303 0039d316-1c4b-4281-b951-d872f2087c98
Handle KeyboardInterrupt gracefully rather the printing a
backtrace. Most users of these tools don't expect a
backtrace when then hit Ctrl-C.
Also, fix a few other inconsistencies found in the python
startup code of these different scripts:
- always call main function 'main' (rather than 'Main')
- always return 0 from main function
- if main takes args never include argv[0]
Review URL: https://codereview.chromium.org/955993006
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@294250 0039d316-1c4b-4281-b951-d872f2087c98
Motivation: There are a few things we want to do in Skia infrastructure that is not possible to do without this functionality.
Eg1: If there is a change made to Skia's markdown then automatically include a 'DOCS_PREVIEW_URL=https://skia.org?cl=1234' in the CL's description.
Eg2: Automatically add 'NOTRY=true' for changes impacting things that do not need trybot runs.
Eg3: Include CL specific links to skia's perf (https://perf.skia.org/) and correctness (https://gold.skia.org/) servers.
BUG=chromium:462208
Review URL: https://codereview.chromium.org/949273002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@294242 0039d316-1c4b-4281-b951-d872f2087c98
If the repository has third_party/dart-sdk/ unpacked, use that to
format dart files modified in the current patch.
BUG=459376
R=maruel@chromium.org, zra@google.com
Review URL: https://codereview.chromium.org/933383002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@294179 0039d316-1c4b-4281-b951-d872f2087c98
This makes uploading to Gerrit with `git cl` more similar to uploading to Rietveld, by uploading a squashed commit containing the diff to the newest common ancestor.
Uploaded commits are stored in refs/heads/git_cl_uploads/<branch> (and their commit message is used for the squash commit), which allows amending the commit message to change it on the uploaded CL, and looking through the reflog to find old uploaded versions.
BUG=none
Review URL: https://codereview.chromium.org/200023004
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@294077 0039d316-1c4b-4281-b951-d872f2087c98
Remove the ambiguity between revision and filename (or directory name)
when using command "git cl diff".
BUG=454032
Review URL: https://codereview.chromium.org/889093002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@293914 0039d316-1c4b-4281-b951-d872f2087c98
This is similar to the Gerrit behavior in that we default to master,
unless the remote upstream is a branch head.
BUG=435702
Review URL: https://codereview.chromium.org/822503005
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@293807 0039d316-1c4b-4281-b951-d872f2087c98
I've run in the exceptions a few times when doing
'git cl presubmit' or 'git cl lint' from a detached
HEAD state (not uncommon when using 'git rebase-update')
Review URL: https://codereview.chromium.org/792933003
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@293643 0039d316-1c4b-4281-b951-d872f2087c98
This will only have an effect if one's buildtools checkout is new enough, since
only then:
a) clang-format will be new enough to do a decent job for java files
b) clang-format-diff.py will be new enough to look at java files
So for older buildtools checkouts, `git cl format` will continue to ignore java
files. For newer buildtools checkouts (like the one pulled by `gclient sync`
with a recent chromium checkout), it'll work and do a fairly decent job.
BUG=429372
Review URL: https://codereview.chromium.org/788933003
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@293312 0039d316-1c4b-4281-b951-d872f2087c98
This fix is created to avoid having to rebuild all the WebRTC
Git mirrors since they're configured to sync with the http URL
instead of https (resulting in git-svn-id Git footers with the
http URL in the commit messages). Without rewriting this, it is
not possible to commit to SVN since Google code disallows committing
to a http URL.
BUG=412012
TEST=Created a CL using a Git repo like this (both before and after landing https://webrtc-codereview.appspot.com/32569004):
git clone https://chromium.googlesource.com/external/webrtc.git
cd webrtc
git auto-svn
git checkout master
git checkout -b test
(edit whitespace change)
git commit -am "Whitespace edit
git cl upload --bypass-hooks"
git cl dcommit
R=agable@chromium.org, machenbach@chromium.org, mmoss@chromium.org
Review URL: https://codereview.chromium.org/760903004
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@293171 0039d316-1c4b-4281-b951-d872f2087c98
and a link to it.
BUG=
Review URL: https://codereview.chromium.org/731473002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@292940 0039d316-1c4b-4281-b951-d872f2087c98
The "comments" command is taught to:
- accept an arbitrary review issue id;
- post comments on the current or specified review issue.
This is required for the auto-rebaseline bot to notify a
rebaseline requestor of the fact that the rebaseline has happened
by means of posting a comment to the review issue that requested
the rebaseline, as suggested by iannucci@.
R=iannucci, szager, dpranke
Review URL: https://codereview.chromium.org/693873002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@292844 0039d316-1c4b-4281-b951-d872f2087c98
The base url was previously being generated as
URL@BRANCH. I'm not sure if this works anywhere
but it certainly doesn't on googlesource.com.
Here we want URL/+/BRANCH.
R=iannucci@chromium.org, sergeyberezin@chromium.org
Review URL: https://codereview.chromium.org/652193004
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@292493 0039d316-1c4b-4281-b951-d872f2087c98
This concerns the "committed" message posted to Rietveld. Prior to
34504a15bb, this used the committer's own core.abbrev. Now it's using
a hard-coded 7. Per recent discussions on chromium-dev, 7 is
insufficient to uniquely identify commits in large repositories such as
ours. If any abbreviation is to be done, a 12-digit minimum should be
used, but there's no reason not to use the entire hash.
Review URL: https://codereview.chromium.org/592293002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@292164 0039d316-1c4b-4281-b951-d872f2087c98
Pulls the logic for computing an issue's "status" - has LGTM, is in
CQ, etc. - out of the "git cl status" command itself, so that other
tools can get the status of a Changelist.
BUG=379849
R=iannucci@chromium.org
Review URL: https://codereview.chromium.org/555973005
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@291928 0039d316-1c4b-4281-b951-d872f2087c98
This was done because a line ending with a '\' will not be printed properly.
Completely escape the string.
R=stip@chromium.org
BUG=
Review URL: https://codereview.chromium.org/557143002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@291906 0039d316-1c4b-4281-b951-d872f2087c98
Because everyone needs humour.
Fix a small bug in subcommands.py with undocumented commands.
R=stip@chromium.org
BUG=
Review URL: https://codereview.chromium.org/554123003
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@291867 0039d316-1c4b-4281-b951-d872f2087c98
For me, PATH was a unicode instead of a str for some reason, so things
failed with
D:\src\chromefetch\src>git cl format
Traceback (most recent call last):
File "d:\src\depot_tools\git_cl.py", line 2821, in <module>
sys.exit(main(sys.argv[1:]))
File "d:\src\depot_tools\git_cl.py", line 2807, in main
return dispatcher.execute(OptionParser(), argv)
File "d:\src\depot_tools\subcommand.py", line 245, in execute
return command(parser, args[1:])
File "d:\src\depot_tools\git_cl.py", line 2768, in CMDformat
stdout = RunCommand(cmd, stdin=diff_output, cwd=top_dir, env=env)
File "d:\src\depot_tools\git_cl.py", line 81, in RunCommand
return subprocess2.check_output(args, shell=False, **kwargs)
File "d:\src\depot_tools\subprocess2.py", line 515, in check_output
return check_call_out(args, stdout=PIPE, **kwargs)[0]
File "d:\src\depot_tools\subprocess2.py", line 475, in check_call_out
out, returncode = communicate(args, **kwargs)
File "d:\src\depot_tools\subprocess2.py", line 449, in communicate
proc = Popen(args, **kwargs)
File "d:\src\depot_tools\subprocess2.py", line 237, in __init__
super(Popen, self).__init__(args, **kwargs)
File "d:\src\depot_tools\python276_bin\lib\subprocess.py", line 709, in __init__
errread, errwrite)
File "d:\src\depot_tools\python276_bin\lib\subprocess.py", line 957, in _execute_child
startupinfo)
TypeError: environment can only contain strings
Sending crash report ...
args: ['d:\\src\\depot_tools\\git_cl.py', 'format']
cwd: D:\src\chromefetch\src
exception: environment can only contain strings
host: THAKIS1-W.ad.corp.google.com
stack: File "d:\src\depot_tools\git_cl.py", line 2821,
user: thakis
version: 2.7.6 (default, Nov 10 2013, 19:24:18)
This fixes the glitch.
Review URL: https://codereview.chromium.org/545333002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@291825 0039d316-1c4b-4281-b951-d872f2087c98
Also reduce number of attempts and give up right away on ACL errors.
R=iannucci@chromium.org
BUG=407369,407470
Review URL: https://codereview.chromium.org/512493002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@291656 0039d316-1c4b-4281-b951-d872f2087c98
This updates various assumptions to coincide with how gclient fetches
branch-heads refs from chromium repos.
R=iannucci@google.com
BUG=406858
Review URL: https://codereview.chromium.org/498013002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@291586 0039d316-1c4b-4281-b951-d872f2087c98
This is broken for a few reasons (see bug for details). Also, this works automatically now with the analyze step.
This is a revert of r280039.
BUG=406238
R=iannucci@chromium.org, sky@chromium.org
Review URL: https://codereview.chromium.org/501503002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@291526 0039d316-1c4b-4281-b951-d872f2087c98
Some options have words separated by underscores. Added options with
same name and underscores replaced by hyphens.
BUG=400953
Review URL: https://codereview.chromium.org/436963005
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@288366 0039d316-1c4b-4281-b951-d872f2087c98
When using `git cl land` this would result in r<hash>, which is not desirable.
R=maruel@chromium.org
Review URL: https://codereview.chromium.org/432023003
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@286931 0039d316-1c4b-4281-b951-d872f2087c98
This also fixes the confusing help message that appears when using “git
cl dcommit” in a git project. “git cl push” was totally removed in
abbaa843f4.
Review URL: https://codereview.chromium.org/437593002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@286835 0039d316-1c4b-4281-b951-d872f2087c98
This causes a network I/O, which is not fast. Also this is a non-starter in the
case of no network connectivity, causing a crash instead of completing
successfully. Until Air Canada provides on-flight internet, this is a
non-starter. #firstworldproblem.
Also fix git cl presubmit in case of lack of network connectivity.
R=stip@chromium.org
BUG=
Review URL: https://codereview.chromium.org/418293004
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@285911 0039d316-1c4b-4281-b951-d872f2087c98
The user message says the subcommand will stop working on July 1.
BUG=
Review URL: https://codereview.chromium.org/396233002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@285586 0039d316-1c4b-4281-b951-d872f2087c98
It serves no purpose, and it's annoying when the presubmit checks take more than
2-3 seconds because I always switch off to another window, so I come back
minutes later seeing this prompt waiting for me.
R=stip@chromium.org
BUG=
Review URL: https://codereview.chromium.org/407413002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@285071 0039d316-1c4b-4281-b951-d872f2087c98
Reason for revert:
Breaks WebRTC (and possibly other projects actually using https:// for svn access).
Original issue's description:
> Allow git cl also in repos with read-only git-svn.
>
> If you have read-only git-svn git cl would still try
> to use svn commands, which would then fail. This
> changes git cl to only use git-svn if the remote
> svn repository use the svn:// protocol. It matches
> how chromium works and it allowed me to upload a patch.
>
> BUG=391430
>
> R=iannucci
>
> Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=281500TBR=iannucci@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=391430
Review URL: https://codereview.chromium.org/375553002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@281513 0039d316-1c4b-4281-b951-d872f2087c98
If you have read-only git-svn git cl would still try
to use svn commands, which would then fail. This
changes git cl to only use git-svn if the remote
svn repository use the svn:// protocol. It matches
how chromium works and it allowed me to upload a patch.
BUG=391430
R=iannucci
Review URL: https://codereview.chromium.org/344013005
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@281500 0039d316-1c4b-4281-b951-d872f2087c98
This makes it possible to effectively re-route the stdout by
re-assigning sys.stdout.
BUG=
Review URL: https://codereview.chromium.org/303223005
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@273595 0039d316-1c4b-4281-b951-d872f2087c98
Reason for revert:
CQ rejects all chromium projects because of this change.
Original issue's description:
> use canonical base URL for projects
>
> BUG=372645
> R=iannucci@chromium.org, sergeyberezin@chromium.org
>
> Committed: https://src.chromium.org/viewvc/chrome?view=rev&revision=270460
TBR=iannucci@chromium.org,sergeyberezin@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=372645
Review URL: https://codereview.chromium.org/287063002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@270803 0039d316-1c4b-4281-b951-d872f2087c98
Otherwise, the old merge-base value can confuse the hell out of `git cl upload`.
BUG=none
Review URL: https://codereview.chromium.org/252683003
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@266648 0039d316-1c4b-4281-b951-d872f2087c98
upstreams.
In the event that users are NOT using the enhanced tooling, this is equivalent
to `git merge-base "@{u}" HEAD`. In the event that they are, this will catch
the case where their parent branch got rebased, but this branch hasn't been
rebased on the parent yet.
R=agable@chromium.org, szager@chromium.org
BUG=
Review URL: https://codereview.chromium.org/224703002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@261601 0039d316-1c4b-4281-b951-d872f2087c98
Relative root no longer makes sense after an os.chdir().
This is effectively a partial revert of r250248.
Review URL: https://codereview.chromium.org/135213006
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@250478 0039d316-1c4b-4281-b951-d872f2087c98
(It's a bit unfortunate that we're duplicating the default -regex list in
clang-format-diff.py here :-/ But the .js and .proto stuff is probably not
quite ready yet anyhow, so I'm only adding .mm for now.)
TEST=Edit a .mm file, commit, run `git cl format`, `git diff` shows formatted
output.
TBR=iannucci@chromium.org
Review URL: https://codereview.chromium.org/152303002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@248424 0039d316-1c4b-4281-b951-d872f2087c98
For simplicity, the canned presubmit check just calls git cl format
directly with a new option --dry-run which does not change the files on
disk.
Because some users may not have git or clang-format might somehow have
errors, this canned check is a warning. Additionally, if git cl format
fails with an error then the presubmit check will silently report
success to avoid spamming misconfigured users during upload.
BUG=none
Review URL: https://codereview.chromium.org/141493002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@246066 0039d316-1c4b-4281-b951-d872f2087c98
BUG=240309
TEST='git cl format' and 'git cl format --full' indent by 4 when run inside of third_party/WebKit
TBR=iannucci@chromium.org
Review URL: https://codereview.chromium.org/136333010
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@245694 0039d316-1c4b-4281-b951-d872f2087c98
as part of the Chromium checkout.
This follows the approach used by gn.
Changes include:
- in-the-PATH clang-format trampoline scripts
- clang_format.py, which finds clang-format binaries inside of Chrome
- Hook 'git cl format' to the new binaries and scripts
- Rearrange some code, for reuse between clang_format.py and gn.py
BUG=240309
TEST=presubmits (one failure on mac, but it fails on a clean checkout too)
Review URL: https://codereview.chromium.org/134313007
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@245074 0039d316-1c4b-4281-b951-d872f2087c98
This change will allow projects other than chromium to specify 'BUG_PREFIX: project_name:' in their codereview.settings file.
Currently, the change is created with 'BUG=', entering a project's bug number there will point it to chromium's issue tracker. Adding a project specific prefix will make the links point to the project's issue tracker without the developer having to know about the magic prefix.
BUG=skia:1983
Review URL: https://codereview.chromium.org/132233006
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@244801 0039d316-1c4b-4281-b951-d872f2087c98
Passing the email address used to connect to Rietveld on the command
line is useful for testing purposes, in particular with a test server.
BUG=331123
Review URL: https://codereview.chromium.org/122583003
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@244017 0039d316-1c4b-4281-b951-d872f2087c98
These options have been added to the 'git cl config' subcommand.
--deactivate-update tells git cl not to update the values inside
.git/config from the codereview.settings file. --activate-update does
the opposite.
This is designed for testing/development purposes only, for example, to
be able to change the rietveld URL.
BUG=327901
Review URL: https://codereview.chromium.org/104043008
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@242943 0039d316-1c4b-4281-b951-d872f2087c98
MatchSvnGlob uses the root url to grep for existing svn commits by
matching the git-svn-id lines in the commit messages. If there is a
rewriteRoot config, then the git-svn-id lines will have the
rewritten url's, and the code should match against that.
R=blundell@chromium.org,maruel@chromium.org
Review URL: https://codereview.chromium.org/103053011
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@241043 0039d316-1c4b-4281-b951-d872f2087c98
This will also enable git cl format to be more easily runnable by
presubmit within a subdirectory.
BUG=none
Review URL: https://codereview.chromium.org/108353005
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@239821 0039d316-1c4b-4281-b951-d872f2087c98
Tell download tools/hooks/commit-msg mannually if it looks broken.
chrome-internal-reviews.googlesource.com requires
authentication to access tools/hooks/commit-msg, and
we'll get Google Sign-in page rather than expected shell script.
R=szager@chromium.org,maruel@chromium.org,ilevy@chromium.org
BUG=
Review URL: https://codereview.chromium.org/87173002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@237454 0039d316-1c4b-4281-b951-d872f2087c98
Newer versions of clang-format-diff.py now require a -i flag to
explicitely apply edits, otherwise they just print a diff, which
make "git cl format" a no-op.
This patch fixes the issue by probing the script's help text to
see if the flag is needed. If it is, it is added automatically.
BUG=NONE
R=maruel@chromium.org
Review URL: https://codereview.chromium.org/44263004
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@231020 0039d316-1c4b-4281-b951-d872f2087c98
Currently, running "git cl issue 0" in a client prints a confusing error
message if there's no issue assigned. This changes the code so that the issue
number isn't "unset" if it's not currently set.
BUG=
Review URL: https://codereview.chromium.org/32193016
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@230499 0039d316-1c4b-4281-b951-d872f2087c98