This CL implements support for file: include lines in OWNERS files,
both as top-level directives and as per-file directives. The
paths can be either relative or absolute.
Examples of lines in OWNERS files:
file:test/OWNERS (relative, top-level)
file://content/OWNERS (absolute, top-level)
per-file mock_impl.h=file:test/OWNERS (relative, per-file)
per-file mock_impl.h=file://content/OWNERS (absolute, per-file)
A whole series of tests to cover this feature have been added
to owners_unittest.py as well.
BUG=119396, 147633
Review URL: https://codereview.chromium.org/1085993004
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@294854 0039d316-1c4b-4281-b951-d872f2087c98
Error out of the current tree is dirty (previously the dirty
content would be incorporated silently into the newly
squashed branch!).
Review URL: https://codereview.chromium.org/1064933004
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@294744 0039d316-1c4b-4281-b951-d872f2087c98
Reland crrev.com/743083002, which was reverted in crrev.com/796053002
due to some test flakiness, probably related with an old version of Git on
the bots. Relanding now that the infra has been updated to Trusty (plus
adding some de-flake precautions).
Original CL Description:
Make gclient ready for the Blink (DEPS to main project) transition
This CL makes gclient understand correctly whether a git project is
being moved from DEPS to an upper project and vice-versa.
The driving use case for this is the upcoming Blink merge, where
third_party/Webkit will be removed from DEPS (and .gitignore) and will
become part of the main project.
At present state, gclient leaves the .git folder around when a project
is removed from DEPS, and that causes many problems.
Furthermore this CL solves the performance problem of bisecting across
the merge point. The subproject's (Blink) .git/ folder is moved to a
backup location (in the main checkout root) and is restored when moving
backwards, avoiding a re-fetch when bisecting across the merge point.
BUG=431469
Review URL: https://codereview.chromium.org/910913003
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@294082 0039d316-1c4b-4281-b951-d872f2087c98
Reason for revert:
The test intoruced is flake (see crrev.com/753543006/).
Need to look into that with more patience as it reproduces only on precise.
Original issue's description:
> Make gclient ready for the Blink (DEPS to main project) transition
>
> This CL makes gclient understand correctly whether a git project is
> being moved from DEPS to an upper project and vice-versa.
> The driving use case for this is the upcoming Blink merge, where
> third_party/Webkit will be removed from DEPS (and .gitignore) and will
> become part of the main project.
>
> At present state, gclient leaves the .git folder around when a project
> is removed from DEPS, and that causes many problems.
>
> Furthermore this CL solves the performance problem of bisecting across
> the merge point. The subproject's (Blink) .git/ folder is moved to a
> backup location (in the main checkout root) and is restored when moving
> backwards, avoiding a re-fetch when bisecting across the merge point.
>
> BUG=431469
>
> Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=293329
TBR=iannucci@chromium.org,maruel@chromium.org,jochen@chromium.org
NOTREECHECKS=true
NOTRY=true
BUG=431469
Review URL: https://codereview.chromium.org/796053002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@293352 0039d316-1c4b-4281-b951-d872f2087c98
I ran into several failures running the presubmit checks
on my Ubuntu/Trusty laptop and it looks like a some of
the tests were broken by recent versions of svn and git.
Review URL: https://codereview.chromium.org/795723003
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@293341 0039d316-1c4b-4281-b951-d872f2087c98
This CL makes gclient understand correctly whether a git project is
being moved from DEPS to an upper project and vice-versa.
The driving use case for this is the upcoming Blink merge, where
third_party/Webkit will be removed from DEPS (and .gitignore) and will
become part of the main project.
At present state, gclient leaves the .git folder around when a project
is removed from DEPS, and that causes many problems.
Furthermore this CL solves the performance problem of bisecting across
the merge point. The subproject's (Blink) .git/ folder is moved to a
backup location (in the main checkout root) and is restored when moving
backwards, avoiding a re-fetch when bisecting across the merge point.
BUG=431469
Review URL: https://codereview.chromium.org/743083002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@293329 0039d316-1c4b-4281-b951-d872f2087c98
This makes this file even easier to read and python 2.6 support is not needed
anymore.
R=iannucci@chromium.org
BUG=
Review URL: https://codereview.chromium.org/238233002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@265799 0039d316-1c4b-4281-b951-d872f2087c98
git-rebase-update - ensure all branches are up to date
git-new-branch - create branches
git-rename-branch - rename a branch while preserving parentage relationships
git-reparent-branch - change the parent of a branch, including rebasing it correctly onto that new parent.
git-squash-branch - collapse a branch into a single commit
git-upstream-diff - show the diff between the current branch and it's upstream branch
git-mark-merge-base - explicitly set what you want the above tools to consider the merge-base for the current branch.
R=agable@chromium.org, hinoka@chromium.org, stip@chromium.org, szager@chromium.org
BUG=261738
Review URL: https://codereview.chromium.org/184253003
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@259520 0039d316-1c4b-4281-b951-d872f2087c98
depot_tools PRESUBMIT.py and tools/build PRESUBMIT.py both run on cq.golo.
If broken dev_appserver.py instances are left around, they will conflict with
master ports.
BUG=351926
Review URL: https://codereview.chromium.org/197073007
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@256721 0039d316-1c4b-4281-b951-d872f2087c98
git-map: Show your local repo's history in a pseudo-graphical format from the command line.
git-map-branches: Show the topology of all of your branches, and their upstream relationships.
git-nav-upstream: Navigate (checkout) to the upstream branch of the current branch.
git-nav-downstream: Navigate (checkout) to a downstream branch of the current branch. If there's more than one downstream branch, then present a menu to select which one you want.
R=agable@chromium.org, hinoka@chromium.org, stip@chromium.org, szager@chromium.org
BUG=
Review URL: https://codereview.chromium.org/184113002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@256384 0039d316-1c4b-4281-b951-d872f2087c98
This is an emergency patch to avoid picking up the
upcoming 2.9-rc0 version of gerrit, which requires java 7
and will break the chromeos bots.
BUG=346369
R=davidjames@chromium.org
Review URL: https://codereview.chromium.org/196063003
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@256378 0039d316-1c4b-4281-b951-d872f2087c98
Reason for revert:
Broke `gclient sync` for me, failing with:
Error: 1> Can't update/checkout /Volumes/MacintoshHD2/src/chrome-git/src if an unversioned directory is present. Delete the directory and try again.
For someone else, it broke it with:
% gclient sync
________ unmanaged solution; skipping src
Error: Command svn info --xml returned non-zero exit status 1 in /Users/pawliger/chromium/src/.
<?xml version="1.0" encoding="UTF-8"?>
<info>
svn: E155007: '/Users/pawliger/chromium/src' is not a working copy
Original issue's description:
> Another attempt: gclient: delete mismatching checkouts
>
> Committed: http://src.chromium.org/viewvc/chrome?view=rev&revision=255930
TBR=iannucci@chromium.org,szager@chromium.org,maruel@chromium.org,mmoss@chromium.org,borenet@google.com
NOTREECHECKS=true
NOTRY=true
Review URL: https://codereview.chromium.org/192323006
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@256005 0039d316-1c4b-4281-b951-d872f2087c98
This reverts commit cdd9690946, which
broke gerrit_unittest.py within the chroot, which has Java 6.
Original-Review URL: https://codereview.chromium.org/164023005
TBR=szager
BUG=344786
TEST=Run the unit tests before and after. Confirm this CL fixes them.
Review URL: https://codereview.chromium.org/170423003
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@251976 0039d316-1c4b-4281-b951-d872f2087c98
These may be named git-snapshot-VERSION.war, where VERSION is the long
format defined in git-describe(1). In particular, this may include a
number of commits after the given tag name; treat more commits since
the tag as a higher version number. This is arguably not always
strictly correct due to non-linear history, but the maintainers expect
the total number of such snapshot versions to be low, and can remove
old snapshot versions that don't sort correctly.
Slightly de-obfuscate some of the variable names and logic while we're
at it.
R=szager@chromium.org
BUG=
Review URL: https://codereview.chromium.org/164023005
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@251888 0039d316-1c4b-4281-b951-d872f2087c98
googlesource.com runs close to master and the latest gerrit RC is
closest to that. Furthermore, this allows the tests to use the latest
REST api endpoints (including create account).
Fix the sorting of gerrit versions to extend the major revsion numbers
before the RC numbers. This makes 2.7-rc4 comparable to 2.7.1.
The gerrit init command now requires download-commands plugin to be
installed in order for the revisions fetch field to be populated (i.e
to show the download schemes).
NOTRY=true
Review URL: https://codereview.chromium.org/69373002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@238631 0039d316-1c4b-4281-b951-d872f2087c98
Compatible with any git topology (multiple roots, weird branching/merging, etc.)
I can't get it to be any faster (in python). Suggestions welcome :).
On z600/linux, this takes 5.1s to calculate the initial count for 2e3de954ef0a
(HEAD on src.git at the time of writing). Subsequent lookups take ~0.06s. For
reference, this machine takes 3s to just list the revisions in sorted order
without any additional processing (using rev-list).
All calculations are stored in a git-notes-style ref with the exception that the
leaf 'tree' object which would normally be stored in a git-notes world is
replaced with a packed binary file which consists of records [hash int]. Each
run of this script will create only 1 commit object on this internal ref which
will have as its parents:
* The previous git number commit
* All of the target commits we calculated numbers for.
This ref is then excluded on subsequent invocations of rev-list, which means that
git-number will only ever process commit objects which it hasn't already
calculated a value for. It also prevents you from attempting to number this
special ref :).
This implementation only has a 1-byte fanout which seems to be the best
performance for the repos we're dealing with (i.e. on the order of 500k commit
objects). Bumping this up to a 2-byte fanout became extremely slow (I suspect
the internal caching structures I'm using are not efficient in this mode and
could be improved). Using no fanout is slower than the 1 byte fanout for lookups
by about 30%.
R=agable@chromium.org, stip@chromium.org, szager@chromium.org
BUG=280154,309692,skia:1639
Review URL: https://codereview.chromium.org/26109002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@236035 0039d316-1c4b-4281-b951-d872f2087c98
This prevents jgit from parsing the user's existing ~/.gitconfig,
which can skew test results.
BUG=
Review URL: https://codereview.chromium.org/27752003
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@229245 0039d316-1c4b-4281-b951-d872f2087c98
gob_util.py is a general-purpose library for communicating with the
gerrit-on-borg service.
testing_support/gerrit_test_case.py is a unittest framework for
testing code that interacts with gerrit.
R=vadimsh@chromium.org, cmp@chromium.org
BUG=
Review URL: https://codereview.chromium.org/26399002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@228965 0039d316-1c4b-4281-b951-d872f2087c98
These are run for a given dependency after it has been synced but before its
DEPS have been synced. This will help to switch Chromium to depend on Skia's
git repository (skia:1638).
Review URL: https://codereview.chromium.org/25322002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@228651 0039d316-1c4b-4281-b951-d872f2087c98
These will come in handy when testing code that interacts with
multiple gerrit servers (like chromite).
BUG=
R=vadimsh@chromium.org
Review URL: https://codereview.chromium.org/23620021
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@221051 0039d316-1c4b-4281-b951-d872f2087c98
Latest dev appengine server defaults admin port to 8000
which isn't always available and can cause spurious
failures.
R=maruel@chromium.org
Review URL: https://chromiumcodereview.appspot.com/20904002
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@214050 0039d316-1c4b-4281-b951-d872f2087c98
The 'RemoveDirectory()' function in gclient_utils is deprecated and
rmtree() should be used instead for consistency.
This patch modifies all clients in depot_tools to use rmtree() instead
and removes the RemoveDirectory function.
+ The SVNWrapperTestCase.testRevertNoDotSvn() mocking
expectation has been slightly changed. This was required
because the test invokes code that used to call
gclient_utils.RemoveDirectory() directly, while only
gclient_utils.rmtree() was mocked.
BUG=NONE
R=maruel@chromium.org, ilevy@chromium.org
TEST=manually run gclient_utils_test / gclient_smoketest / scm_unittest / gclient_scm_test
Review URL: https://chromiumcodereview.appspot.com/14134010
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@196133 0039d316-1c4b-4281-b951-d872f2087c98
Here's some background why we need this:
We discovered that google code defines the timestamp of a revision to be the time when a commit was started
rather than when it was finished (apache subversion takes the timestamp when the commit transaction is finished).
This can result in a situation where revision R(i-1) has a higher timestamp than Ri.
See bug: https://code.google.com/p/support/issues/detail?id=30419
When using 'gclient --transitive' we effectively do date-based checkouts.
If a parent has a dependency (without a ...@revision) and that dependency lives in the same repository as the parent does
we'd like to checkout the exact same revision as the parent (if we do a date-based checkout as we do now the google code
bug can result in a situation where we don't get the same revision).
Review URL: https://chromiumcodereview.appspot.com/13814012
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@194852 0039d316-1c4b-4281-b951-d872f2087c98
Improve temporary storage management.
Print the error message on local GAE instance failure.
Useful to debug when a new version of the GAE SDK breaks something.
TBR=iannucci@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/13997004
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@194131 0039d316-1c4b-4281-b951-d872f2087c98
It's bad python practice to use a class-level member that is mutable. self.calls
is already initialized in __init__ so it's not useful (and dangerous) to have it
as a class member.
R=cmp@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/11801018
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@175368 0039d316-1c4b-4281-b951-d872f2087c98
If you were creating a new OWNERS file that only had per-file owners
in it (and no catch-all owners for the whole directory), then we
would not look for suggested owners in parent directories, and end up
suggesting nothing. See https://chromiumcodereview.appspot.com/11555036/
for the CL that revealed this.
Also, the unit tests were incorrectly using absolute paths in some cases,
making the code less predictable; I've fixed the unit tests and added
a check for this into owners.py (real changes never used absolute paths,
just paths relative to the checkout root).
R=maruel@chromium.org
Review URL: https://chromiumcodereview.appspot.com/11569018
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@173000 0039d316-1c4b-4281-b951-d872f2087c98
Add new test cases to verify it properly handles "-1 +1, 2" and "-1 +1" for
short files.
R=petermayo@chromium.org
BUG=
Review URL: https://chromiumcodereview.appspot.com/10894036
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@153906 0039d316-1c4b-4281-b951-d872f2087c98
When a diff contains utf8 character, the filename would be stored as a unicode
object instead of a str. This is even if the buffer is originally sent as a
utf-8 encoded str. Then once the diff is reconstructed to be sent to 'patch', a
unicode object instead of a str would be sent, confusing patch.
R=cmp@chromium.org
BUG=
TEST=
Review URL: http://codereview.chromium.org/9387024
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@122361 0039d316-1c4b-4281-b951-d872f2087c98