Commit 1118a219 authored by Edward Lesmes's avatar Edward Lesmes Committed by Commit Bot

gclient_eval: Support unpinned dependencies in SetRevision.

If a dependency was unpinned, support adding a revision to it.

R=agable@chromium.org

Bug: 760633
Change-Id: Id2c9fe5174458acaea334726176b88558425ef5a
Reviewed-on: https://chromium-review.googlesource.com/998735Reviewed-by: 's avatarAaron Gable <agable@chromium.org>
Reviewed-by: 's avatarMichael Moss <mmoss@chromium.org>
Commit-Queue: Edward Lesmes <ehmaldonado@chromium.org>
parent 8d626576
...@@ -666,7 +666,13 @@ def SetRevision(gclient_dict, dep_name, new_revision): ...@@ -666,7 +666,13 @@ def SetRevision(gclient_dict, dep_name, new_revision):
SetVar(gclient_dict, var_name, new_revision) SetVar(gclient_dict, var_name, new_revision)
else: else:
if '@' in node.s: if '@' in node.s:
# '@' is part of the last string, which we want to modify. Discard
# whatever was after the '@' and put the new revision in its place.
new_revision = node.s.split('@')[0] + '@' + new_revision new_revision = node.s.split('@')[0] + '@' + new_revision
elif '@' not in dep_dict[dep_key]:
# '@' is not part of the URL at all. This mean the dependency is
# unpinned and we should pin it.
new_revision = node.s + '@' + new_revision
_UpdateAstString(tokens, node, new_revision) _UpdateAstString(tokens, node, new_revision)
dep_dict.SetNode(dep_key, new_revision, node) dep_dict.SetNode(dep_key, new_revision, node)
......
...@@ -504,6 +504,20 @@ class SetRevisionTest(unittest.TestCase): ...@@ -504,6 +504,20 @@ class SetRevisionTest(unittest.TestCase):
] ]
self.assert_changes_revision(before, after) self.assert_changes_revision(before, after)
def test_pins_revision(self):
before = [
'deps = {',
' "src/dep": "https://example.com/dep.git",',
'}',
]
after = [
'deps = {',
' "src/dep": "https://example.com/dep.git@deadfeed",',
'}',
]
self.assert_changes_revision(before, after)
def test_preserves_formatting(self): def test_preserves_formatting(self):
before = [ before = [
'vars = {', 'vars = {',
......
Markdown is supported
0% or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment