mirror of
https://chromium.googlesource.com/chromium/tools/depot_tools.git
synced 2026-01-11 18:51:29 +00:00
gclient: Report what dependencies were not processed.
Report the dependencies that were not synced, due to their, or their parent's condition evaluating to False. Bug: 853010 Change-Id: I375703a1b91e3c3e31e444b0df1c95ecae17b6ba Reviewed-on: https://chromium-review.googlesource.com/1111113 Reviewed-by: Michael Moss <mmoss@chromium.org> Reviewed-by: Aaron Gable <agable@chromium.org> Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
This commit is contained in:
11
gclient.py
11
gclient.py
@@ -527,7 +527,7 @@ class Dependency(gclient_utils.WorkItem, DependencySettings):
|
||||
self.name)
|
||||
if not self.should_process:
|
||||
# Return early, no need to set requirements.
|
||||
return True
|
||||
return not any(d.name == self.name for d in self.root.subtree(True))
|
||||
|
||||
# This require a full tree traversal with locks.
|
||||
siblings = [d for d in self.root.subtree(False) if d.name == self.name]
|
||||
@@ -601,10 +601,6 @@ class Dependency(gclient_utils.WorkItem, DependencySettings):
|
||||
if dep_type == 'cipd':
|
||||
cipd_root = self.GetCipdRoot()
|
||||
for package in dep_value.get('packages', []):
|
||||
if 'version' in package:
|
||||
# Matches version to vars value.
|
||||
version = package['version']
|
||||
package['version'] = version
|
||||
deps_to_add.append(
|
||||
CipdDependency(
|
||||
parent=self,
|
||||
@@ -2565,14 +2561,11 @@ def CMDsync(parser, args):
|
||||
slns = {}
|
||||
for d in client.subtree(True):
|
||||
normed = d.name.replace('\\', '/').rstrip('/') + '/'
|
||||
if normed in slns and not d.should_process:
|
||||
# If an unprocessed dependency would override an existing dependency,
|
||||
# ignore it.
|
||||
continue
|
||||
slns[normed] = {
|
||||
'revision': d.got_revision,
|
||||
'scm': d.used_scm.name if d.used_scm else None,
|
||||
'url': str(d.url) if d.url else None,
|
||||
'was_processed': d.should_process,
|
||||
}
|
||||
with open(options.output_json, 'wb') as f:
|
||||
json.dump({'solutions': slns}, f)
|
||||
|
||||
@@ -412,6 +412,10 @@ deps = {
|
||||
deps = {
|
||||
'src/repo2': '%(git_base)srepo_2@%(hash)s',
|
||||
'src/repo2/repo_renamed': '/repo_3',
|
||||
'src/should_not_process': {
|
||||
'url': '/repo_4',
|
||||
'condition': 'False',
|
||||
}
|
||||
}
|
||||
# I think this is wrong to have the hooks run from the base of the gclient
|
||||
# checkout. It's maybe a bit too late to change that behavior.
|
||||
|
||||
@@ -369,23 +369,33 @@ class GClientSmokeGIT(GClientSmokeBase):
|
||||
with open(output_json) as f:
|
||||
output_json = json.load(f)
|
||||
|
||||
self.maxDiff = None
|
||||
out = {
|
||||
'solutions': {
|
||||
'src/': {
|
||||
'scm': 'git',
|
||||
'url': self.git_base + 'repo_1',
|
||||
'revision': self.githash('repo_1', 2),
|
||||
'was_processed': True,
|
||||
},
|
||||
'src/repo2/': {
|
||||
'scm': 'git',
|
||||
'url':
|
||||
self.git_base + 'repo_2@' + self.githash('repo_2', 1)[:7],
|
||||
'revision': self.githash('repo_2', 1),
|
||||
'was_processed': True,
|
||||
},
|
||||
'src/repo2/repo_renamed/': {
|
||||
'scm': 'git',
|
||||
'url': self.git_base + 'repo_3',
|
||||
'revision': self.githash('repo_3', 2),
|
||||
'was_processed': True,
|
||||
},
|
||||
'src/should_not_process/': {
|
||||
'scm': None,
|
||||
'url': self.git_base + 'repo_4',
|
||||
'revision': None,
|
||||
'was_processed': False,
|
||||
},
|
||||
},
|
||||
}
|
||||
@@ -839,6 +849,7 @@ class GClientSmokeGIT(GClientSmokeBase):
|
||||
self.git_base, self.githash('repo_2', 1)),
|
||||
'src/repo2/repo_renamed': '%srepo_3@%s' % (
|
||||
self.git_base, self.githash('repo_3', 2)),
|
||||
'src/should_not_process': None,
|
||||
},
|
||||
}]
|
||||
self.assertEqual(out, output_json)
|
||||
|
||||
Reference in New Issue
Block a user