| Index: gclient_scm.py | 
| diff --git a/gclient_scm.py b/gclient_scm.py | 
| index 30e604dd7ebca84fef94e0d12f45ff2c19b0152d..6dc4da7f609ff0e65f8bd6d74f1c697645e6cd94 100644 | 
| --- a/gclient_scm.py | 
| +++ b/gclient_scm.py | 
| @@ -11,8 +11,9 @@ import re | 
| import sys | 
| import time | 
|  | 
| -import scm | 
| import gclient_utils | 
| +import scm | 
| +import subprocess2 | 
|  | 
|  | 
| class DiffFilterer(object): | 
| @@ -495,7 +496,7 @@ class GitWrapper(SCMWrapper): | 
| try: | 
| self._Run(clone_cmd, options, cwd=self._root_dir) | 
| break | 
| -      except gclient_utils.Error, e: | 
| +      except (gclient_utils.Error, subprocess2.CalledProcessError), e: | 
| # TODO(maruel): Hackish, should be fixed by moving _Run() to | 
| # CheckCall(). | 
| # Too bad we don't have access to the actual output. | 
| @@ -750,7 +751,7 @@ class SVNWrapper(SCMWrapper): | 
| # Get the existing scm url and the revision number of the current checkout. | 
| try: | 
| from_info = scm.SVN.CaptureInfo(os.path.join(self.checkout_path, '.')) | 
| -    except gclient_utils.Error: | 
| +    except (gclient_utils.Error, subprocess2.CalledProcessError): | 
| raise gclient_utils.Error( | 
| ('Can\'t update/checkout %s if an unversioned directory is present. ' | 
| 'Delete the directory and try again.') % self.checkout_path) | 
| @@ -772,7 +773,7 @@ class SVNWrapper(SCMWrapper): | 
| # The repository url changed, need to switch. | 
| try: | 
| to_info = scm.SVN.CaptureInfo(url) | 
| -      except gclient_utils.Error: | 
| +      except (gclient_utils.Error, subprocess2.CalledProcessError): | 
| # The url is invalid or the server is not accessible, it's safer to bail | 
| # out right now. | 
| raise gclient_utils.Error('This url is unreachable: %s' % url) | 
| @@ -889,7 +890,7 @@ class SVNWrapper(SCMWrapper): | 
| """Display revision""" | 
| try: | 
| return scm.SVN.CaptureRevision(self.checkout_path) | 
| -    except gclient_utils.Error: | 
| +    except (gclient_utils.Error, subprocess2.CalledProcessError): | 
| return None | 
|  | 
| def runhooks(self, options, args, file_list): | 
|  |