From a98a6cd47d1325c51b0a69ef00d91f3ddd5dbfc8 Mon Sep 17 00:00:00 2001 From: agable Date: Tue, 15 Nov 2016 14:30:10 -0800 Subject: [PATCH] Remove safesync support from gclient[_scm].py R=dpranke@chromium.org Review-Url: https://codereview.chromium.org/2395013002 --- fetch_configs/breakpad.py | 1 - fetch_configs/chromium.py | 1 - fetch_configs/dart.py | 1 - fetch_configs/dartino.py | 1 - fetch_configs/dartium.py | 1 - fetch_configs/gyp.py | 1 - fetch_configs/ios_internal.py | 1 - fetch_configs/mojo.py | 1 - fetch_configs/nacl.py | 1 - fetch_configs/naclports.py | 1 - fetch_configs/v8.py | 1 - fetch_configs/webrtc.py | 1 - gclient.py | 60 +++++++---------------------------- gclient_scm.py | 13 ++------ recipe_modules/gclient/api.py | 2 -- tests/gclient_smoketest.py | 8 +---- tests/gclient_test.py | 12 +++---- 17 files changed, 20 insertions(+), 87 deletions(-) diff --git a/fetch_configs/breakpad.py b/fetch_configs/breakpad.py index 7b47b4f35..b023e7665 100644 --- a/fetch_configs/breakpad.py +++ b/fetch_configs/breakpad.py @@ -18,7 +18,6 @@ class Breakpad(config_util.Config): 'url': url, 'managed': False, 'custom_deps': {}, - 'safesync_url': '', } spec = { 'solutions': [solution], diff --git a/fetch_configs/chromium.py b/fetch_configs/chromium.py index d461aa0fc..d4dae2dc0 100644 --- a/fetch_configs/chromium.py +++ b/fetch_configs/chromium.py @@ -20,7 +20,6 @@ class Chromium(config_util.Config): 'deps_file': '.DEPS.git', 'managed' : False, 'custom_deps': {}, - 'safesync_url': '', } if props.get('webkit_revision', '') == 'ToT': solution['custom_vars'] = {'webkit_revision': ''} diff --git a/fetch_configs/dart.py b/fetch_configs/dart.py index 2500324d9..fea854355 100644 --- a/fetch_configs/dart.py +++ b/fetch_configs/dart.py @@ -21,7 +21,6 @@ class Dart(config_util.Config): 'deps_file': 'DEPS', 'managed' : False, 'custom_deps': {}, - 'safesync_url': '', } spec = { 'solutions': [solution], diff --git a/fetch_configs/dartino.py b/fetch_configs/dartino.py index cd74804ae..9cf51863e 100644 --- a/fetch_configs/dartino.py +++ b/fetch_configs/dartino.py @@ -20,7 +20,6 @@ class Dartino(config_util.Config): 'deps_file': 'DEPS', 'managed' : False, 'custom_deps': {}, - 'safesync_url': '', } spec = { 'solutions': [solution], diff --git a/fetch_configs/dartium.py b/fetch_configs/dartium.py index 230b8a5c7..10870dd09 100644 --- a/fetch_configs/dartium.py +++ b/fetch_configs/dartium.py @@ -21,7 +21,6 @@ class Dart(config_util.Config): 'deps_file': 'tools/deps/dartium.deps/DEPS', 'managed' : False, 'custom_deps': {}, - 'safesync_url': '', } spec = { 'solutions': [solution], diff --git a/fetch_configs/gyp.py b/fetch_configs/gyp.py index f4661c0f4..aef3e1191 100644 --- a/fetch_configs/gyp.py +++ b/fetch_configs/gyp.py @@ -19,7 +19,6 @@ class Chromium(config_util.Config): 'url' : url, 'managed' : False, 'custom_deps': {}, - 'safesync_url': '', } spec = { 'solutions': [solution], diff --git a/fetch_configs/ios_internal.py b/fetch_configs/ios_internal.py index da730982a..d89120128 100644 --- a/fetch_configs/ios_internal.py +++ b/fetch_configs/ios_internal.py @@ -20,7 +20,6 @@ class IOSInternal(config_util.Config): 'deps_file': 'DEPS', 'managed' : False, 'custom_deps': {}, - 'safesync_url': '', } spec = { 'solutions': [solution], diff --git a/fetch_configs/mojo.py b/fetch_configs/mojo.py index e34c8e2fe..3442044c6 100644 --- a/fetch_configs/mojo.py +++ b/fetch_configs/mojo.py @@ -21,7 +21,6 @@ class Mojo(config_util.Config): 'deps_file': 'DEPS', 'managed' : False, 'custom_deps': {}, - 'safesync_url': '', } spec = { 'solutions': [solution], diff --git a/fetch_configs/nacl.py b/fetch_configs/nacl.py index 3c0fff3ea..469be1860 100644 --- a/fetch_configs/nacl.py +++ b/fetch_configs/nacl.py @@ -22,7 +22,6 @@ class NaCl(config_util.Config): 'deps_file' : 'DEPS', 'managed' : False, 'custom_deps' : {}, - 'safesync_url': '', } spec = { 'solutions': [solution], diff --git a/fetch_configs/naclports.py b/fetch_configs/naclports.py index e631f2254..b38e5bffa 100644 --- a/fetch_configs/naclports.py +++ b/fetch_configs/naclports.py @@ -21,7 +21,6 @@ class Naclports(config_util.Config): 'deps_file' : 'DEPS', 'managed' : False, 'custom_deps' : {}, - 'safesync_url': '', } spec = { 'solutions': [solution], diff --git a/fetch_configs/v8.py b/fetch_configs/v8.py index b6e6ca099..ce45a3bd3 100644 --- a/fetch_configs/v8.py +++ b/fetch_configs/v8.py @@ -21,7 +21,6 @@ class V8(config_util.Config): 'deps_file' : 'DEPS', 'managed' : False, 'custom_deps' : {}, - 'safesync_url': '', } spec = { 'solutions': [solution], diff --git a/fetch_configs/webrtc.py b/fetch_configs/webrtc.py index fbced5efd..8ef4d71a7 100644 --- a/fetch_configs/webrtc.py +++ b/fetch_configs/webrtc.py @@ -23,7 +23,6 @@ class WebRTC(config_util.Config): 'deps_file': 'DEPS', 'managed': False, 'custom_deps': {}, - 'safesync_url': '', }, ], 'with_branch_heads': True, diff --git a/gclient.py b/gclient.py index 3e8a79622..1fed7086c 100755 --- a/gclient.py +++ b/gclient.py @@ -190,13 +190,12 @@ class GClientKeywords(object): class DependencySettings(GClientKeywords): """Immutable configuration settings.""" def __init__( - self, parent, url, safesync_url, managed, custom_deps, custom_vars, + self, parent, url, managed, custom_deps, custom_vars, custom_hooks, deps_file, should_process, relative): GClientKeywords.__init__(self) # These are not mutable: self._parent = parent - self._safesync_url = safesync_url self._deps_file = deps_file self._url = url # 'managed' determines whether or not this dependency is synced/updated by @@ -254,10 +253,6 @@ class DependencySettings(GClientKeywords): return self or GClient(None, None) return self.parent.root - @property - def safesync_url(self): - return self._safesync_url - @property def should_process(self): """True if this dependency should be processed, i.e. checked out.""" @@ -297,12 +292,12 @@ class DependencySettings(GClientKeywords): class Dependency(gclient_utils.WorkItem, DependencySettings): """Object that represents a dependency checkout.""" - def __init__(self, parent, name, url, safesync_url, managed, custom_deps, + def __init__(self, parent, name, url, managed, custom_deps, custom_vars, custom_hooks, deps_file, should_process, relative): gclient_utils.WorkItem.__init__(self, name) DependencySettings.__init__( - self, parent, url, safesync_url, managed, custom_deps, custom_vars, + self, parent, url, managed, custom_deps, custom_vars, custom_hooks, deps_file, should_process, relative) # This is in both .gclient and DEPS files: @@ -703,7 +698,7 @@ class Dependency(gclient_utils.WorkItem, DependencySettings): if ent is not None: deps_file = ent['deps_file'] deps_to_add.append(Dependency( - self, name, url, None, None, None, self.custom_vars, None, + self, name, url, None, None, self.custom_vars, None, deps_file, should_process, use_relative_paths)) deps_to_add.sort(key=lambda x: x.name) @@ -1059,7 +1054,7 @@ class Dependency(gclient_utils.WorkItem, DependencySettings): def __str__(self): out = [] - for i in ('name', 'url', 'parsed_url', 'safesync_url', 'custom_deps', + for i in ('name', 'url', 'parsed_url', 'custom_deps', 'custom_vars', 'deps_hooks', 'file_list', 'should_process', 'processed', 'hooks_ran', 'deps_parsed', 'requirements', 'allowed_hosts'): @@ -1114,7 +1109,6 @@ solutions = [ "managed" : %(managed)s, "custom_deps" : { }, - "safesync_url": "%(safesync_url)s", }, ] cache_dir = %(cache_dir)r @@ -1127,7 +1121,6 @@ cache_dir = %(cache_dir)r "managed" : %(managed)s, "custom_deps" : { %(solution_deps)s }, - "safesync_url": "%(safesync_url)s", }, """) @@ -1141,7 +1134,7 @@ solutions = [ # Do not change previous behavior. Only solution level and immediate DEPS # are processed. self._recursion_limit = 2 - Dependency.__init__(self, None, None, None, None, True, None, None, None, + Dependency.__init__(self, None, None, None, True, None, None, None, 'unused', True, None) self._options = options if options.deps_os: @@ -1225,7 +1218,6 @@ it or fix the checkout. try: deps_to_add.append(Dependency( self, s['name'], s['url'], - s.get('safesync_url', None), s.get('managed', True), s.get('custom_deps', {}), s.get('custom_vars', {}), @@ -1276,12 +1268,11 @@ it or fix the checkout. return client def SetDefaultConfig(self, solution_name, deps_file, solution_url, - safesync_url, managed=True, cache_dir=None): + managed=True, cache_dir=None): self.SetConfig(self.DEFAULT_CLIENT_FILE_TEXT % { 'solution_name': solution_name, 'solution_url': solution_url, 'deps_file': deps_file, - 'safesync_url' : safesync_url, 'managed': managed, 'cache_dir': cache_dir, }) @@ -1324,13 +1315,10 @@ it or fix the checkout. revision_overrides = {} if self._options.head: return revision_overrides - # Do not check safesync_url if one or more --revision flag is specified. if not self._options.revisions: for s in self.dependencies: if not s.managed: self._options.revisions.append('%s@unmanaged' % s.name) - elif s.safesync_url: - self._ApplySafeSyncRev(dep=s) if not self._options.revisions: return revision_overrides solutions_names = [s.name for s in self.dependencies] @@ -1344,26 +1332,6 @@ it or fix the checkout. index += 1 return revision_overrides - def _ApplySafeSyncRev(self, dep): - """Finds a valid revision from the content of the safesync_url and apply it - by appending revisions to the revision list. Throws if revision appears to - be invalid for the given |dep|.""" - assert len(dep.safesync_url) > 0 - handle = urllib.urlopen(dep.safesync_url) - rev = handle.read().strip() - handle.close() - if not rev: - raise gclient_utils.Error( - 'It appears your safesync_url (%s) is not working properly\n' - '(as it returned an empty response). Check your config.' % - dep.safesync_url) - scm = gclient_scm.CreateSCM( - dep.url, dep.root.root_dir, dep.name, self.outbuf) - safe_rev = scm.GetUsableRev(rev, self._options) - if self._options.verbose: - print('Using safesync_url revision: %s.\n' % safe_rev) - self._options.revisions.append('%s@%s' % (dep.name, safe_rev)) - def RunOnDeps(self, command, args, ignore_requirements=False, progress=True): """Runs a command on each dependency in a client and its dependencies. @@ -1539,7 +1507,6 @@ it or fix the checkout. 'solution_name': d.name, 'solution_url': d.url, 'deps_file': d.deps_file, - 'safesync_url' : d.safesync_url or '', 'managed': d.managed, 'solution_deps': ''.join(custom_deps), } @@ -1705,7 +1672,7 @@ def CMDroot(parser, args): print(os.path.abspath('.')) -@subcommand.usage('[url] [safesync url]') +@subcommand.usage('[url]') def CMDconfig(parser, args): """Creates a .gclient file in the current directory. @@ -1764,10 +1731,7 @@ def CMDconfig(parser, args): parser.error('Do not include relative path components in --name.') deps_file = options.deps_file - safesync_url = '' - if len(args) > 1: - safesync_url = args[1] - client.SetDefaultConfig(name, deps_file, base_url, safesync_url, + client.SetDefaultConfig(name, deps_file, base_url, managed=not options.unmanaged, cache_dir=options.cache_dir) client.SaveConfig() @@ -1856,8 +1820,7 @@ def CMDsync(parser, args): 'format src@rev. The src@ part is optional and can be ' 'skipped. -r can be used multiple times when .gclient ' 'has multiple solutions configured and will work even ' - 'if the src@ part is skipped. Note that specifying ' - '--revision means your safesync_url gets ignored.') + 'if the src@ part is skipped.') parser.add_option('--with_branch_heads', action='store_true', help='Clone git "branch_heads" refspecs in addition to ' 'the default refspecs. This adds about 1/2GB to a ' @@ -1865,8 +1828,7 @@ def CMDsync(parser, args): parser.add_option('--with_tags', action='store_true', help='Clone git tags in addition to the default refspecs.') parser.add_option('-H', '--head', action='store_true', - help='skips any safesync_urls specified in ' - 'configured solutions and sync to head instead') + help='DEPRECATED: only made sense with safesync urls.') parser.add_option('-D', '--delete_unversioned_trees', action='store_true', help='Deletes from the working copy any dependencies that ' 'have been removed since the last sync, as long as ' diff --git a/gclient_scm.py b/gclient_scm.py index 4a4e60154..e64754ce7 100644 --- a/gclient_scm.py +++ b/gclient_scm.py @@ -777,12 +777,7 @@ class GitWrapper(SCMWrapper): sha1 = None if not os.path.isdir(self.checkout_path): raise NoUsableRevError( - ( 'We could not find a valid hash for safesync_url response "%s".\n' - 'Safesync URLs with a git checkout currently require the repo to\n' - 'be cloned without a safesync_url before adding the safesync_url.\n' - 'For more info, see: ' - 'http://code.google.com/p/chromium/wiki/UsingNewGit' - '#Initial_checkout' ) % rev) + 'This is not a git repo, so we cannot get a usable rev.') if scm.GIT.IsValidRevision(cwd=self.checkout_path, rev=rev): sha1 = rev @@ -795,11 +790,7 @@ class GitWrapper(SCMWrapper): if not sha1: raise NoUsableRevError( - ('We could not find a valid hash for safesync_url response "%s".\n' - 'Please ensure that your safesync_url provides git sha1 hashes.\n' - 'For more info, see:\n' - 'http://code.google.com/p/chromium/wiki/UsingNewGit#Initial_checkout' - ) % rev) + 'Hash %s does not appear to be a valid hash in this repo.' % rev) return sha1 diff --git a/recipe_modules/gclient/api.py b/recipe_modules/gclient/api.py index ab1a54ad0..0607b051d 100644 --- a/recipe_modules/gclient/api.py +++ b/recipe_modules/gclient/api.py @@ -133,8 +133,6 @@ class GclientApi(recipe_api.RecipeApi): revisions = [] self.set_patch_project_revision(self.m.properties.get('patch_project'), cfg) for i, s in enumerate(cfg.solutions): - if s.safesync_url: # pragma: no cover - continue # prefer safesync_url in gclient mode if i == 0 and s.revision is None: s.revision = RevisionFallbackChain() diff --git a/tests/gclient_smoketest.py b/tests/gclient_smoketest.py index 996a0afe3..dace58728 100755 --- a/tests/gclient_smoketest.py +++ b/tests/gclient_smoketest.py @@ -207,7 +207,6 @@ class GClientSmoke(GClientSmokeBase): ' "managed" : True,\n' ' "custom_deps" : {\n' ' },\n' - ' "safesync_url": "",\n' ' },\n' ']\n' 'cache_dir = None\n') % self.git_base) @@ -220,7 +219,6 @@ class GClientSmoke(GClientSmokeBase): ' "managed" : True,\n' ' "custom_deps" : {\n' ' },\n' - ' "safesync_url": "",\n' ' },\n' ']\n' 'cache_dir = None\n') % self.git_base) @@ -233,7 +231,6 @@ class GClientSmoke(GClientSmokeBase): ' "managed" : True,\n' ' "custom_deps" : {\n' ' },\n' - ' "safesync_url": "faa",\n' ' },\n' ']\n' 'cache_dir = None\n') @@ -246,7 +243,6 @@ class GClientSmoke(GClientSmokeBase): ' "managed" : True,\n' ' "custom_deps" : {\n' ' },\n' - ' "safesync_url": "",\n' ' },\n' ']\n' 'cache_dir = None\n') @@ -255,7 +251,7 @@ class GClientSmoke(GClientSmokeBase): os.remove(p) results = self.gclient(['config', 'foo', 'faa', 'fuu']) - err = ('Usage: gclient.py config [options] [url] [safesync url]\n\n' + err = ('Usage: gclient.py config [options] [url]\n\n' 'gclient.py: error: Inconsistent arguments. Use either --spec or one' ' or 2 args\n') self.check(('', err, 2), results) @@ -307,7 +303,6 @@ class GClientSmokeGIT(GClientSmokeBase): def testSync(self): if not self.enabled: return - # TODO(maruel): safesync. self.gclient(['config', self.git_base + 'repo_1', '--name', 'src']) # Test unversioned checkout. self.parseGclient( @@ -387,7 +382,6 @@ class GClientSmokeGIT(GClientSmokeBase): def testSyncJobs(self): if not self.enabled: return - # TODO(maruel): safesync. self.gclient(['config', self.git_base + 'repo_1', '--name', 'src']) # Test unversioned checkout. self.parseGclient( diff --git a/tests/gclient_test.py b/tests/gclient_test.py index 8f2fd68fc..cbdaac1ae 100755 --- a/tests/gclient_test.py +++ b/tests/gclient_test.py @@ -219,7 +219,7 @@ class GclientTest(trial_dir.TestCase): # Invalid urls causes pain when specifying requirements. Make sure it's # auto-fixed. d = gclient.Dependency( - None, 'name', 'proto://host/path/@revision', None, None, None, None, + None, 'name', 'proto://host/path/@revision', None, None, None, None, '', True, False) self.assertEquals('proto://host/path@revision', d.url) @@ -230,19 +230,19 @@ class GclientTest(trial_dir.TestCase): obj.add_dependencies_and_close( [ gclient.Dependency( - obj, 'foo', 'url', None, None, None, None, None, 'DEPS', True, False), + obj, 'foo', 'url', None, None, None, None, 'DEPS', True, False), gclient.Dependency( - obj, 'bar', 'url', None, None, None, None, None, 'DEPS', True, False), + obj, 'bar', 'url', None, None, None, None, 'DEPS', True, False), ], []) obj.dependencies[0].add_dependencies_and_close( [ gclient.Dependency( - obj.dependencies[0], 'foo/dir1', 'url', None, None, None, None, + obj.dependencies[0], 'foo/dir1', 'url', None, None, None, None, 'DEPS', True, False), gclient.Dependency( obj.dependencies[0], 'foo/dir2', - gclient.GClientKeywords.FromImpl('bar'), None, None, None, None, + gclient.GClientKeywords.FromImpl('bar'), None, None, None, None, 'DEPS', True, False), ], []) @@ -563,7 +563,7 @@ class GclientTest(trial_dir.TestCase): """Verifies expected behavior of LateOverride.""" url = "git@github.com:dart-lang/spark.git" d = gclient.Dependency(None, 'name', 'url', - None, None, None, None, None, '', True, False) + None, None, None, None, '', True, False) late_url = d.LateOverride(url) self.assertEquals(url, late_url)