mirror of
https://chromium.googlesource.com/chromium/tools/depot_tools.git
synced 2026-01-11 10:41:31 +00:00
Implement setdeps for GCS
The number of revision objects must match the number of current objects
for a given path. The comma separated values for a revision object
must also be in the order of object_name, sha256sum, size_bytes, and
generation.
Example usage:
gclient setdep --revision=src/third_party/js_code_coverage@myobjectname,deadbeef,1223455,9438393984/myobjectname2,deadbefeaef,1223455,9438393984
Resulting diff:
diff --git a/DEPS b/DEPS
index b40bca8cdd89d..c2186185c1db5 100644
--- a/DEPS
+++ b/DEPS
@@ -553,10 +553,10 @@ deps = {
'bucket': 'chromium-nodejs',
'objects': [
{
- 'object_name': 'js_code_coverage/d538975c93eefc7bafd599b50f867e90c1ef17f3',
- 'sha256sum': '646bb00ced0a930b2eb1e4dbcfac18ebbb8f889bb80599e0254d9d6505427914',
- 'size_bytes': 1469185,
- 'generation': 1657780123604338,
+ 'object_name': 'myobjectname',
+ 'sha256sum': 'deadbeef',
+ 'size_bytes': 1223455,
+ 'generation': 9438393984,
},
],
},
Bug: b/324418194
Change-Id: Ibd824f7b51fa88f732c7197e2cc663b58de7479e
Reviewed-on: https://chromium-review.googlesource.com/c/chromium/tools/depot_tools/+/5503101
Commit-Queue: Stephanie Kim <kimstephanie@google.com>
Reviewed-by: Joanna Wang <jojwang@chromium.org>
This commit is contained in:
@@ -787,6 +787,29 @@ def _GetVarName(node):
|
||||
return None
|
||||
|
||||
|
||||
def SetGCS(gclient_dict, dep_name, new_objects):
|
||||
if not isinstance(gclient_dict, _NodeDict) or gclient_dict.tokens is None:
|
||||
raise ValueError(
|
||||
"Can't use SetGCS for the given gclient dict. It contains no "
|
||||
"formatting information.")
|
||||
tokens = gclient_dict.tokens
|
||||
|
||||
if 'deps' not in gclient_dict or dep_name not in gclient_dict['deps']:
|
||||
raise KeyError("Could not find any dependency called %s." % dep_name)
|
||||
|
||||
node = gclient_dict['deps'][dep_name]
|
||||
objects_node = node.GetNode('objects')
|
||||
if len(objects_node.elts) != len(new_objects):
|
||||
raise ValueError("Number of revision objects must match the current "
|
||||
"number of objects.")
|
||||
|
||||
for index, object_node in enumerate(objects_node.elts):
|
||||
for key, value in zip(object_node.keys, object_node.values):
|
||||
_UpdateAstString(tokens, value, new_objects[index][key.s])
|
||||
|
||||
node.SetNode('objects', new_objects, objects_node)
|
||||
|
||||
|
||||
def SetCIPD(gclient_dict, dep_name, package_name, new_version):
|
||||
if not isinstance(gclient_dict, _NodeDict) or gclient_dict.tokens is None:
|
||||
raise ValueError(
|
||||
|
||||
Reference in New Issue
Block a user