Until recently, no proper Git clone of depot_tools existed.
All Git clones were set up locally via git svn clone. The
way repos of that type are updated is via 'git svn rebase'.
Now, a supported Git clone of depot_tools exists. The
update process for repos of this type is via 'git fetch'
and 'git rebase'.
Modify the update_depot_tools* scripts so they can update
depot_tools for git cloned or git svn cloned methods. This
also means that git svn is no longer required, so move that
test after we check for git cloned repos.
R=maruel@chromium.org
TEST=Linux + git clone: on Linux, git clone
https://git.chromium.org/chromium/tools/depot_tools.git. Apply
and commit this patch locally. Note commit hash of HEAD. Run
'git reset --hard "HEAD^^^"'. Run
'git cherry-pick HASH_OF_UPDATE_CHANGE'. Run './update_depot_tools'.
Verify depot_tools is updated to latest available revision + this
change.
TEST=Linux + git svn clone: on Linux, git svn clone
svn://svn.chromium.org/chrome/trunk/tools/depot_tools.
Apply and commit this patch locally. Note commit hash
of HEAD. Run 'git reset --hard "HEAD^^^"'. Run 'git cherry-pick
HASH_OF_UPDATE_CHANGE'. Run './update_depot_tools'. Verify
depot_tools is updated to latest available revision + this change.
TEST=Windows command prompt + git clone: on Windows command prompt,
run Linux+git clone test, except use update_depot_tools.bat. Verify
depot_tools is updated to latest available revision + this change.
TEST=Windows command prompt + git svn clone: on Windows command
prompt, run Linux+git svn clone test, except use
update_depot_tools.bat. Verify depot_tools is updated to latest
available revision + this change.
TEST=Windows cygwin + git clone: on Windows command prompt,
run Linux+git clone test. Verify depot_tools is updated to latest
available revision + this change.
TEST=Windows cygwin + git svn clone: on Windows command
prompt, run Linux+git svn clone test. Verify depot_tools is updated
to latest available revision + this change.
Review URL: https://chromiumcodereview.appspot.com/10263004
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@134732 0039d316-1c4b-4281-b951-d872f2087c98
On Linux, I did a full ninja checkout and then ran:
python bootstrap.py
./configure.py --with-gtest=../chrome/src/testing/gtest
./ninja ninja_test
./ninja_test # (all tests passed)
strip ninja
I timed empty builds of 'chrome' with the old and the new version,
both took 1.1s for that. Binary size comparison:
121632 bytes old binary
129920 bytes new binary
I used gcc 4.4.3 to build ninja.
On Mac, I updated an existing checkout to the latest version and then ran:
CXX=../chrome-git/src/third_party/llvm-build/Release+Asserts/bin/clang++ \
./configure.py --with-gtest=../chrome-git/src/testing/gtest
./ninja
./ninja ninja_test # (all tests passed)
strip ninja
I timed empty builds of 'chrome' with the old and the new version,
both took 1.1s for that. Binary size comparison:
128976 bytes old binary
120904 bytes new binary
I used clang r155352 to build ninja. Last time I used gcc 4.2, which
explains the size drop.
The major new features in this update are:
* ninja cleans up files when interrupted mid-build
* NINJA_STATUS environment variable to tweak the status line
(see ninja manual)
Also set svn:mimetype to application/octet-stream on both files.
Review URL: https://chromiumcodereview.appspot.com/10221020/
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@134307 0039d316-1c4b-4281-b951-d872f2087c98
This ability is useful for versions of Chromium (i.e. Android) which want to
cross-compile to another platform that has a fixed set of custom dependencies.
Review URL: http://codereview.chromium.org/10127004
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@134280 0039d316-1c4b-4281-b951-d872f2087c98
Merges recent upstream changes from martine/master:
- Adds -d explain for debugging;
- Adds support for NINJA_STATUS to configure output (see ninja manual);
- Other minor fixes.
TBR=maruel@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10235008
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@134119 0039d316-1c4b-4281-b951-d872f2087c98
Previously when ninja.bat was run from a prompt that already had VS vars
available, it was adding them a second time. Depending on what else the user
had in the path, this could cause the path to become too long and so things at
the end wouldn't be found. To avoid this, check if the compiler is available
first, and don't run the environment set up in that case.
R=maruel@chromium.org
Review URL: https://chromiumcodereview.appspot.com/10222010
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@133940 0039d316-1c4b-4281-b951-d872f2087c98
- Automatically line break $in when writing to response files (to support ULDI).
- Some refactoring of stat daemon (still off by default)
TBR=maruel
Review URL: https://chromiumcodereview.appspot.com/10223001
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@133862 0039d316-1c4b-4281-b951-d872f2087c98
This would spurious try job failures because the gclient revert step would throw
an exception.
R=cmp@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/10169034
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@133799 0039d316-1c4b-4281-b951-d872f2087c98
Update pylintrc to be near the pylint 0.25.1 default file.
R=cmp@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/10199016
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@133707 0039d316-1c4b-4281-b951-d872f2087c98
Pylint fails to parse generated members in a __init__() function.
R=cmp@chromium.org
BUG=
TEST=Manually tested on linux, cygwin and windows
Review URL: http://codereview.chromium.org/10202010
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@133705 0039d316-1c4b-4281-b951-d872f2087c98
- Fixes StringPiece usage in ninja-deplist-helper fixing occasional corruption
of deps (and on gypbot)
- Includes (off by default) stat daemon
TBR=maruel
Review URL: https://chromiumcodereview.appspot.com/10162007
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@133215 0039d316-1c4b-4281-b951-d872f2087c98
Previous attempts inside the buildbot config missed some places.
This just does it directly in gclient.
Review carefully, this is a depot_tools change.
BUG=None
TEST=None
R=maruel@chromium.org,dschuff@chromium.org
Review URL: http://codereview.chromium.org/10116033
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@132997 0039d316-1c4b-4281-b951-d872f2087c98
The first approach crrev.com/132446 was reverted due to
Windows build breaks. This approach is more robust because
it actually tests the binary by running the command actually.
BUG=114483
TEST=succeeded on Linux
Review URL: http://codereview.chromium.org/10103024
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@132783 0039d316-1c4b-4281-b951-d872f2087c98
Shell through to the .bat to make sure the environment is correctly set up. Not sure if there's a better uname to check?
Review URL: https://chromiumcodereview.appspot.com/10024045
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@132252 0039d316-1c4b-4281-b951-d872f2087c98
In Windows (already worked correctly in posix): gclient wouldn't correctly update depot_tools when called.
Refactored away the bootstrap depot_tools update flow which only still existed in Windows.
Patch contributed by gab@chromium.orgR=maruel@chromium.org
BUG=
TEST=Running `gclient sync` from src/ and see depot_tools being correctly updated under a git depot_tools checkout.
Review URL: https://chromiumcodereview.appspot.com/9751009
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@132191 0039d316-1c4b-4281-b951-d872f2087c98
Fixes regression in includes filtering for ninja-deplist-helper.
TBR=maruel
Review URL: https://chromiumcodereview.appspot.com/9982010
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@130677 0039d316-1c4b-4281-b951-d872f2087c98
git-gs wasn't finding matches in the chromiumos-overlays
repo as most of the files there are .ebuild. This fixes that.
BUG=None
TEST='git gs KEYWORDS' now returns matches
Review URL: http://codereview.chromium.org/9861001
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@130397 0039d316-1c4b-4281-b951-d872f2087c98
This is useful if git-cl has no way to find out the original svn repo's url
and the user does not wish to configure git-svn and fetch the repository.
Review URL: http://codereview.chromium.org/9969099
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@130372 0039d316-1c4b-4281-b951-d872f2087c98
The original design of this had some issues:
1) forced targets to be importable via 'buildbot.cbuildbot', rather
than the proper/full 'chromite.buildbot.cbuildbot'. Scripts worked
around this, but it's an unwanted limitation.
2) That importation requirement means that within the chroot, we've
had to export cros_sdk *and* cros_sdk.py in the PATH. This is
undesirable clutter, and introduces potential errors as scripts
localize themselves to cros_sdk.py rather than invoking cros_sdk
(the consumers should be agnostic to the language the tool is
written in).
3) chromite_wrapper enforced assumptions about python namespace w/in
the targets- specifically that 'main' must always be invokable
without any arguments. This limits refactoring/cleanup in chromite
via having to support ancient API assumptions (api's that weren't
public); modern chromite has repurposed main changing the prototype,
and using it's own wrapper doing signal handler setup, and general
framework behaviour. Longer term, that 'main' functor is unlikely
to even exist. The strong coupling chromite_wrapper forced limits
are refactoring possibilities.
4) In modern chromite, all user consumable tools are now required to
exist w/in chromite/bin/, and be executable and invokable. This is
what we want going forward.
5) Implied we want chromite_wrapper used w/in the chroot; we don't,
thus drop all CROS_WORKON_SRCROOT awareness.
6) Exposed a chromite_wrapper invokable (that didn't work) into the
PATH outside the chroot; this is resolved via moving it into a
support directory and repointing symlinks to it.
At this point, if it's working with a modern chromite checkout the
script is a simple execv pass thru. If it isn't, then it will fallback
to the old import trickery.
This has been tested against R16, R17, R18, ToT, 0.11.241.B, factory-*,
basically all branches w/in chromite without issue.
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@128555 0039d316-1c4b-4281-b951-d872f2087c98
It was gutted from ToT, and was broke for a fairly long time
prior to that- nothing uses it in this fashion.
BUG=None
TEST=N/a
Review URL: http://codereview.chromium.org/9743004
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@128076 0039d316-1c4b-4281-b951-d872f2087c98
This will make it easier to support git-submodule and gclient at
the same time.
Review URL: http://codereview.chromium.org/9692022
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@126428 0039d316-1c4b-4281-b951-d872f2087c98
Enforces that each builder and builder:test association must be in its own list item in PRESUBMIT.py/GetPreferredTrySlaves().
If a user run git try -t foo, trychange.py will now take the list of all the
slaves, will skip any :compile builder, and apply the test filter to them.
Currently, git try -t foo on a chromium checkout throws an exception because of
PRESUBMIT.py files containing test specification.
R=petermayo@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/9664015
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@125975 0039d316-1c4b-4281-b951-d872f2087c98
Previously, it would apply the test filter only on the last bot.
TBR=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/9634011
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@125622 0039d316-1c4b-4281-b951-d872f2087c98
The previous behavior would cause inproper parsing;
- the bot=bot1 flag would add 'bot1': ['defaulttests'] to the dictionary.
- the testfilter=test1 flag would append 'test1' to the list, causing the value
to look like 'bot1': ['defaulttests', 'test1'].
I think on the long run the best is to keep --testfilter as a user interface but
not on the try server. This effectively stops sending testfilter=foo to the
server.
Add unit test to verify it's working properly. Refactor a bit to make unit
testing simpler.
R=petermayo@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/9599012
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@125405 0039d316-1c4b-4281-b951-d872f2087c98
This permits running git grep over the dependencies. With --ignore, gclient
recurse continues even if nothing is found in a dependency. Without this flag,
git grep returns 1 when nothing is found, causing gclient to stop processing the
remaining dependencies.
TBR=nsylvain@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/9600010
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@124914 0039d316-1c4b-4281-b951-d872f2087c98
Support --jobs in 'fetch' and 'recurse' commands.
BUG=115840
TEST=
Review URL: http://codereview.chromium.org/9560010
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@124657 0039d316-1c4b-4281-b951-d872f2087c98
The fetch command is simply an alias for:
gclient recurse -s git git fetch origin
Rework 'recurse' command to use a WorkQueue so that --jobs is supported.
BUG=115840
TEST=
Review URL: http://codereview.chromium.org/9463044
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@124334 0039d316-1c4b-4281-b951-d872f2087c98
- Support quiet option on ninja-deplist-helper.
- Add "overprint" mode to ninja when attached to a console.
- Fix slash handling in creating output directories.
- Merge response file support from master branch
Review URL: https://chromiumcodereview.appspot.com/9539015
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@124266 0039d316-1c4b-4281-b951-d872f2087c98
r123775 contained copy-paste left-over that caused the code to throw a NameError
instead of a HTTPError.
R=petermayo@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/9536014
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@124184 0039d316-1c4b-4281-b951-d872f2087c98
Occasionally, AppEngine throws HTTP 500. In practice it's not a big deal but
upload.py converts them into sys.exit() call which is problematic. This breaks
the commit queue since this behaviors forces the CQ to quit.
R=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/9480005
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@123775 0039d316-1c4b-4281-b951-d872f2087c98
The mere fact that they were each looking at two different outputs was already a
bad sign. Then, occasionally, the output would still not match exactly. This
needs to be recoded so remove these tests in the meantime.
TBR=dpranke@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/9474003
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@123743 0039d316-1c4b-4281-b951-d872f2087c98
Xcode 4.3 git returns the version like below:
git version 1.7.7.5 (Apple Git-26)
Modify GIT.AssertVersion to accept such input.
Also modify tests/gclient_scm_test.py to pass tests, but not sure
the fix is collect.
BUG=chromium:115576
TEST=ran tests/gclient_scm_test.py
Review URL: http://codereview.chromium.org/9443047
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@123399 0039d316-1c4b-4281-b951-d872f2087c98