[depot_tools] Disabling new git checkouts with safesync_urls until fixed.
R=maruel@chromium.org
TEST=gclient sync a freshly configured client.
BUG=106015
Review URL: http://codereview.chromium.org/8994016
git-svn-id: svn://svn.chromium.org/chrome/trunk/tools/depot_tools@115452 0039d316-1c4b-4281-b951-d872f2087c98
diff --git a/gclient.py b/gclient.py
index c804186..041dc36 100644
--- a/gclient.py
+++ b/gclient.py
@@ -920,18 +920,7 @@
if not s.managed:
self._options.revisions.append('%s@unmanaged' % s.name)
elif s.safesync_url:
- handle = urllib.urlopen(s.safesync_url)
- rev = handle.read().strip()
- handle.close()
- scm = gclient_scm.CreateSCM(s.url, s.root.root_dir, s.name)
- safe_rev = scm.GetUsableRev(rev=rev, options=self._options)
- if not safe_rev:
- raise gclient_utils.Error(
- 'Despite our best attempts, we couldn\'t find a useful\n'
- 'safesync_url revision for you.')
- if self._options.verbose:
- print('Using safesync_url revision: %s.\n' % safe_rev)
- self._options.revisions.append('%s@%s' % (s.name, safe_rev))
+ self._ApplySafeSyncRev(dep=s)
if not self._options.revisions:
return revision_overrides
solutions_names = [s.name for s in self.dependencies]
@@ -950,6 +939,25 @@
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)
+ safe_rev = scm.GetUsableRev(rev=rev, options=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):
"""Runs a command on each dependency in a client and its dependencies.