Commit Graph

143 Commits (049bcedffee62a6118ea6a5e0c0702a035dc6da6)

Author SHA1 Message Date
maruel@chromium.org 049bcedffe Add new class ExecutionQueue to take care of out-of-order execution.
ExecutionQueue takes care of reordering execution depending on each Dependency
requirements. There is no need to sort anymore.

ExecutionQueue also manages the Progress instance and is multithread safe, in preparation to parallel checkout.

Review URL: http://codereview.chromium.org/3112002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@55882 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org b1e315f9e8 Add revinfo --actual to fetch the actual revisions,
gclient revinfo alone will now not return the actual checked out revisions but simply what's in the .gclient&DEPS.

BUG=none
TEST=add a --snapshot test to make sure it is not broken

Review URL: http://codereview.chromium.org/3130007

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@55760 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 6da25d0d81 A small refactor I had lying around for a while.
No functional change.

Review URL: http://codereview.chromium.org/3179001

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@55745 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 621939b680 Add Dependency.requirements which will solve the issues found in pagespeed and parallel checkout.
Review URL: http://codereview.chromium.org/3159002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@55614 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org dde32eecf5 Improve logging and exceptions.
No functional change.

Review URL: http://codereview.chromium.org/3109003

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@55581 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org f3abb80ae0 Fix the type of 2 exceptions.
Add Dependency.processed and .hooks_ran to ease debugging.

Accept when more than one reference exist for FromImpl(), it may happen as it is the case for pagespeed.

Not much behavior change.

Review URL: http://codereview.chromium.org/3126003

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@55575 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org da7a1f902a Fix logic error in LateOverride().
It would modify self.parsed_url even when it's called for a From() keyword

Review URL: http://codereview.chromium.org/3171001

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@55574 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 0d81244c42 Remove default arguments to Dependency.__init__().
Also rename an argument to better fit reality.

No functional change

Review URL: http://codereview.chromium.org/3108001

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@55559 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org defec8e689 Disable the duplicate dependency check to get pagespeed back to sync.
BUG=50015
TBR=bradnelson

Review URL: http://codereview.chromium.org/3013031

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@53435 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 861fd0feb1 Make file_list recursive so that pattern in hooks will trigger on dependencies too.
This was the behavior before the refactor.

TEST=sync parfait and hooks should be run when necessary.
TBR=bradnelson

Review URL: http://codereview.chromium.org/2819062

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@53430 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
bradnelson@google.com 5f8f2a8402 Reverting 53377, horks webkit waterfall.
BUG=None
TEST=None
TBR=maruel

Review URL: http://codereview.chromium.org/3005027

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@53419 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 044f4e3998 Fix misalignment
NO CODE CHANGE.

TBR=bradnelson

Review URL: http://codereview.chromium.org/2854061

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@53399 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 98d05fa37e Fix a bug with From('..', None) not working.
This issue is exhibited by pagespeed.

Also a solution is always a direct dependency by definition.

TEST=none
TBR=bradnelson

Review URL: http://codereview.chromium.org/3036013

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@53397 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org c57e4f2848 Make Dependency.subtree() a standalone function for later use.
No behavior change.

TEST=all test still pass
TBR=bradnelson

Review URL: http://codereview.chromium.org/3005026

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@53392 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org bc2d2f908b Fix docstring to be a docstring.
TBR=bradnelson

Review URL: http://codereview.chromium.org/2808062

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@53386 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 85c2a19833 Add comments to clarify the purpose of some member variables.
NO CODE CHANGE.

TBR=bradnelson

Review URL: http://codereview.chromium.org/3014027

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@53382 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org bffb9042d6 Add Dependency.hierarchy() to better visualize the origin of a dependency.
TBR=bradnelson

Review URL: http://codereview.chromium.org/2883035

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@53379 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org cefc9d9113 Don't sort dependencies by name anymore since it can be an issue for some kind of DEPS setup.
PageSpeed is an example of such ordering dependency.

TBR=bradnelson

Review URL: http://codereview.chromium.org/2809072

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@53377 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org df2b31582f Reapply gclient.py refactor for the third time.
Bring some OOP and sanity to gclient.py.

- Changed the algorithm from breadth-first to depth-first.
- Added infinite recursion support.
- Fixed From() of From() dependency.
- Fixed cross solution custom deps aliasing.
- Removed support code for old .gclient_entries format.
- Removed IsGitCheckout() in favor for a direct check for .git presence.

TEST=all test pass

The main difference with r51760 is that new smoke tests have been added since which replicates how webkit checkouts with gclient.

Review URL: http://codereview.chromium.org/2917009

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@53205 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
mazda@chromium.org 67a1a74d7e Fix gclient.py so that save_pinned_deps works.
Chromium OS continuous builds are failing because of the following error.

Traceback (most recent call last):
  File "/b/depot_tools/gclient.py", line 1212, in <module>
    sys.exit(Main(sys.argv[1:]))
  File "/b/depot_tools/gclient.py", line 1202, in Main
    return command(parser, argv[1:])
  File "/b/depot_tools/gclient.py", line 1122, in CMDrevinfo
    client.PrintRevInfo()
  File "/b/depot_tools/gclient.py", line 776, in PrintRevInfo
    url = entries.pop(name)
KeyError: 'chromiumos'

This change will fix the error.

TEST=none
BUG=none
Review URL: http://codereview.chromium.org/2892007

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@52180 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org baa578e3d0 Add testing for a solution entry where url = None.
This is being abused by WebKit.

TEST=new smoke test

Review URL: http://codereview.chromium.org/2923005

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@52096 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 9b13351cd7 Add testing for the From(File()) case, fix revinfo.
This case covers the webkit gclient usage.

TEST=improved smoke test

Review URL: http://codereview.chromium.org/2968005

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@52092 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org dc7445dd70 Revert the refactor (r52005) again, it broke webkit checkout.
TBR=msb

Review URL: http://codereview.chromium.org/2973001

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@52011 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 917aa91750 Reapply r51760 and r51761 that were reverted in r51767.
Add the fix for FileImpl() plus unit tests.

TEST=more tests

Review URL: http://codereview.chromium.org/2808048

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@52005 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org e3216c6e26 Improve testing with File() keyword, found a few bugs along the way
TEST=new smoke tests

Review URL: http://codereview.chromium.org/2865039

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@51824 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 5248d9dfe3 Revert both r51761 and r51760 as it broke the webkit slaves.
TBR=msb

Review URL: http://codereview.chromium.org/2886017

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@51767 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 6e55ebea5e Copy paste failure.
I didn't run the unit test after doing the last minute change and it was indeed broken.

TBR=msb

Review URL: http://codereview.chromium.org/2823040

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@51761 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org adecb3162f Bring some OOP and sanity to gclient.py.
- Changed the algorithm from breadth-first to depth-first.
- Added infinite recursion support.
- Fixed From() of From() dependency.
- Fixed cross solution custom deps aliasing.
- Removed support code for old .gclient_entries format.
- Removed IsGitCheckout() in favor for a direct check for .git presence.

TEST=all test pass

Review URL: http://codereview.chromium.org/2867047

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@51760 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org eaf6106fdf Move _RunHooks() higher to simplify the diff. NO CODE CHANGE.
Review URL: http://codereview.chromium.org/2885021

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@51746 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 5990f9d536 Give more simple message when a SyntaxError is thrown
TEST=none, no big deal. I'll get a breakpad report otherwise anyway. This is solely to *reduce* the number of breakpad stack trace that this is done.

Review URL: http://codereview.chromium.org/2885020

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@51739 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 73e2114e7d Mixed bag of nits.
Remove SUPPORTED_COMMANDS since it is not necessary, change the formating to not introduce an empty line.

Review URL: http://codereview.chromium.org/2836042

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@51640 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
piman@chromium.org 4b90e3a55b Add gclient recurse
This allows to recurse in all the entries to operate on them.

Review URL: http://codereview.chromium.org/2862039

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@51419 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org d36fba8100 Add more glue code necessary for getting the DEPS dependencies as Dependency objects.
Review URL: http://codereview.chromium.org/2857017

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@50988 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 81843b86ef Make the exception user-friendly
Review URL: http://codereview.chromium.org/2866017

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@50987 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 271375b004 Move DEPS parsing into a single function. This is a move towards having each DEPS entry being a Dependency instance.
TEST=new revinfo unit tests

Review URL: http://codereview.chromium.org/2839008

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@50630 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 0d425926d8 Revert r50367 "Move DEPS parsing into a single function." yet again...
TBR=nasserg

Review URL: http://codereview.chromium.org/2815017

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@50372 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 6b57049528 Move DEPS parsing into a single function. This is a move towards having each DEPS entry being a Dependency instance.
TEST=new revinfo unit tests

Review URL: http://codereview.chromium.org/2839008

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@50367 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org ba0fce74f5 Revert revision 50247 "Move DEPS parsing into a single function."
It breaks on Windows.

TBR=msb

Review URL: http://codereview.chromium.org/2856008

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@50248 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 038527953c Move DEPS parsing into a single function. This is a move towards having each DEPS entry being a Dependency instance.
Review URL: http://codereview.chromium.org/2839008

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@50247 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 9a66ddfcf8 Move these functions to Dependency to simplify the diff later.
No code change.

_ParseSolutionDeps(), _ParseAllDeps(), _RunHookAction(), _RunHooks()

Review URL: http://codereview.chromium.org/2828009

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@49960 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 0b6a084052 More work toward refactoring. Simplify LoadCurrentConfig() and convert most " with '.
Review URL: http://codereview.chromium.org/2807003

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@49789 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 54a07a2f8f Make each solution dictionary an object.
The change is partial to keep this change still correct but readable/reviewable.
Followup changes will further move functions into the Dependency class.
If it was done in one change, it would be unreviewable.
Fix GetScmName() for protocol svn+ssh://.

TEST=didn't break the smoke tests.

Review URL: http://codereview.chromium.org/2837001

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@49707 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 75a5927d4f Switch usage of self._root_dir to self.root_dir()
Another step in my quest to make the refactor reviewable.

Review URL: http://codereview.chromium.org/2786014

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@49601 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 9eda411072 Incremental changes towards more efficient refactoring of gclient.py
Fix gclient diff & pack to not throw uncatched exceptions when a directory is missing.

Reorder things in gclient.py for easier diff later
Update revinfo help
Add GetScmName(), it will be needed later.

TEST=unit tests
BUG=none

Review URL: http://codereview.chromium.org/2786013

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@49565 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org f0fc991611 Options cleanup, enforce nohooks and deps_os are always defined.
Review URL: http://codereview.chromium.org/2776006

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@49554 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 116704f20d Some preparation work towards the gclient.py refactor.
Switch "" usage to '' to please Brad. Didn't change gclient.py yet because it
will conflict with the refactor.

TEST=unit tests still pass.

Review URL: http://codereview.chromium.org/2769011

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@49545 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 6e29d572b5 Add pylintrc and fix style for many scripts.
Fix a bug in scm.SVN.DiffItem()

Reduce variable aliasing, fix alignments, etc.

Review URL: http://codereview.chromium.org/2673002

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@48943 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org c0b8a4ecb9 Add shorthand to many flags
Review URL: http://codereview.chromium.org/2455008

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@48738 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 307d179455 Move all revision parsing code to _EnforceRevisions.
Make -r invalid@rev a warning and ignore the argument.
Make -r rev use the Nth solution.
Fix a bug in FakeRepos.assertTree().

TEST=updated the smoke test to reflect the new behavior which should be the most compatible with the current buildbot behavior
BUG=chromium-os:3465

Review URL: http://codereview.chromium.org/2430001

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@48607 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago
maruel@chromium.org 86c0dec826 Add --deps for all commands beside config and help. Fix help.
Review URL: http://codereview.chromium.org/2384001

git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@48508 0039d316-1c4b-4281-b951-d872f2087c98
15 years ago