Chromium Code Reviews| Index: gclient.py |
| diff --git a/gclient.py b/gclient.py |
| index 33f7911f0f3afa7688abc11adeebc95157bfcbb2..33a0d329009f5ebbddac6b56311a85d10f897023 100755 |
| --- a/gclient.py |
| +++ b/gclient.py |
| @@ -313,6 +313,7 @@ class Dependency(gclient_utils.WorkItem, DependencySettings): |
| # This is the scm used to checkout self.url. It may be used by dependencies |
| # to get the datetime of the revision we checked out. |
| self._used_scm = None |
| + self._used_revision = None |
| # The actual revision we ended up getting, or None if that information is |
| # unavailable |
| self._got_revision = None |
| @@ -602,7 +603,7 @@ class Dependency(gclient_utils.WorkItem, DependencySettings): |
| self._mark_as_parsed(hooks) |
| def maybeGetParentRevision( |
| - self, command, options, parsed_url, parent_name, revision_overrides): |
| + self, command, options, parsed_url, parent): |
|
Ryan Tseng
2014/05/19 22:04:09
nit: This fits on the line above, right?
szager1
2014/05/20 04:41:33
Done.
|
| """Uses revision/timestamp of parent if no explicit revision was specified. |
| If we are performing an update and --transitive is set, use |
| @@ -615,7 +616,7 @@ class Dependency(gclient_utils.WorkItem, DependencySettings): |
| if command == 'update' and options.transitive and not options.revision: |
| _, revision = gclient_utils.SplitUrlRevision(parsed_url) |
| if not revision: |
| - options.revision = revision_overrides.get(parent_name) |
| + options.revision = getattr(parent, '_used_revision', None) |
| if (options.revision and |
| not gclient_utils.IsDateRevision(options.revision)): |
| assert self.parent and self.parent.used_scm |
| @@ -636,7 +637,6 @@ class Dependency(gclient_utils.WorkItem, DependencySettings): |
| if options.verbose: |
| print('Using parent\'s revision date %s since we are in a ' |
| 'different repository.' % options.revision) |
| - revision_overrides[self.name] = options.revision |
| # Arguments number differs from overridden method |
| # pylint: disable=W0221 |
| @@ -669,7 +669,9 @@ class Dependency(gclient_utils.WorkItem, DependencySettings): |
| options = copy.copy(options) |
| options.revision = revision_overrides.get(self.name) |
| self.maybeGetParentRevision( |
| - command, options, parsed_url, self.parent.name, revision_overrides) |
| + command, options, parsed_url, self.parent) |
| + revision_overrides.pop(self.name, None) |
|
Ryan Tseng
2014/05/19 22:04:09
nit: Move this to line 670, replace revision_overr
szager1
2014/05/20 04:41:33
Done.
|
| + self._used_revision = options.revision |
| self._used_scm = gclient_scm.CreateSCM( |
| parsed_url, self.root.root_dir, self.name, self.outbuf, |
| out_cb=work_queue.out_cb) |
| @@ -1219,12 +1221,7 @@ want to set 'managed': False in .gclient. |
| # Support for --revision 123 |
| revision = '%s@%s' % (solutions_names[index], revision) |
| sol, rev = revision.split('@', 1) |
|
Ryan Tseng
2014/05/19 22:04:09
nit: rename this to (name, rev) to make it make it
szager1
2014/05/20 04:41:33
Done.
|
| - if not sol in solutions_names: |
| - #raise gclient_utils.Error('%s is not a valid solution.' % sol) |
| - print >> sys.stderr, ('Please fix your script, having invalid ' |
| - '--revision flags will soon considered an error.') |
| - else: |
| - revision_overrides[sol] = rev |
| + revision_overrides[sol] = rev |
| index += 1 |
| return revision_overrides |
| @@ -1278,6 +1275,9 @@ want to set 'managed': False in .gclient. |
| for s in self.dependencies: |
| work_queue.enqueue(s) |
| work_queue.flush(revision_overrides, command, args, options=self._options) |
| + if revision_overrides: |
| + print >> sys.stderr, ('Please fix your script, having invalid ' |
| + '--revision flags will soon considered an error.') |
| # Once all the dependencies have been processed, it's now safe to run the |
| # hooks. |