| Index: gclient_scm.py
|
| diff --git a/gclient_scm.py b/gclient_scm.py
|
| index 3e8f59c9ba837fb02eea5a3974bb96183c11e250..cb243a96f309c67b620cd029b0b53ef5a8b317c0 100644
|
| --- a/gclient_scm.py
|
| +++ b/gclient_scm.py
|
| @@ -294,7 +294,7 @@ class GitWrapper(SCMWrapper):
|
| verbose = ['--verbose']
|
| printed_path = True
|
|
|
| - if revision.startswith('refs/heads/'):
|
| + if revision.startswith('refs/'):
|
| rev_type = "branch"
|
| elif revision.startswith('origin/'):
|
| # For compatability with old naming, translate 'origin' to 'refs/heads'
|
| @@ -402,29 +402,12 @@ class GitWrapper(SCMWrapper):
|
| else:
|
| raise gclient_utils.Error('Invalid Upstream: %s' % upstream_branch)
|
|
|
| - if (not re.match(r'^[0-9a-fA-F]{40}$', revision) or
|
| - not scm.GIT.IsValidRevision(cwd=self.checkout_path, rev=revision)):
|
| + if not scm.GIT.IsValidRevision(self.checkout_path, revision, sha_only=True):
|
| # Update the remotes first so we have all the refs.
|
| - backoff_time = 5
|
| - for _ in range(10):
|
| - try:
|
| - remote_output = scm.GIT.Capture(
|
| - ['remote'] + verbose + ['update'],
|
| + remote_output = scm.GIT.Capture(['remote'] + verbose + ['update'],
|
| cwd=self.checkout_path)
|
| - break
|
| - except subprocess2.CalledProcessError, e:
|
| - # Hackish but at that point, git is known to work so just checking for
|
| - # 502 in stderr should be fine.
|
| - if '502' in e.stderr:
|
| - print(str(e))
|
| - print('Sleeping %.1f seconds and retrying...' % backoff_time)
|
| - time.sleep(backoff_time)
|
| - backoff_time *= 1.3
|
| - continue
|
| - raise
|
| -
|
| if verbose:
|
| - print(remote_output.strip())
|
| + print(remote_output)
|
|
|
| self._UpdateBranchHeads(options, fetch=True)
|
|
|
|
|