| Index: gclient_scm.py
 | 
| diff --git a/gclient_scm.py b/gclient_scm.py
 | 
| index 0f34d38601fc3d3ebd9df62b775ec9e7e249db79..68f3be328e86c1c0b0ab73bc0919d08f29d03b01 100644
 | 
| --- a/gclient_scm.py
 | 
| +++ b/gclient_scm.py
 | 
| @@ -353,28 +353,27 @@ class GitWrapper(SCMWrapper):
 | 
|        else:
 | 
|          raise gclient_utils.Error('Invalid Upstream: %s' % upstream_branch)
 | 
|  
 | 
| -    if not scm.GIT.IsValidRevision(cwd=self.checkout_path, rev=revision):
 | 
| -      # 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'],
 | 
| -              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
 | 
| +    # 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'],
 | 
| +            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())
 | 
| +    if verbose:
 | 
| +      print(remote_output.strip())
 | 
|  
 | 
|      # This is a big hammer, debatable if it should even be here...
 | 
|      if options.force or options.reset:
 | 
| 
 |