| Index: checkout.py
 | 
| diff --git a/checkout.py b/checkout.py
 | 
| index a303b338aca4d2b35ff0caea8c81f3536b8c39dd..e2e7e3ab9c97659b58814a35e3f363ae8fdd6281 100644
 | 
| --- a/checkout.py
 | 
| +++ b/checkout.py
 | 
| @@ -479,15 +479,18 @@ class SvnCheckout(CheckoutBase, SvnMixIn):
 | 
|      flags = ['--ignore-externals']
 | 
|      if revision:
 | 
|        flags.extend(['--revision', str(revision)])
 | 
| -    if not os.path.isdir(self.project_path):
 | 
| +    if os.path.isdir(self.project_path):
 | 
| +      # This may remove any part (or all) of the checkout.
 | 
| +      scm.SVN.Revert(self.project_path, no_ignore=True)
 | 
| +
 | 
| +    if os.path.isdir(self.project_path):
 | 
| +      # Revive files that were deleted in scm.SVN.Revert().
 | 
| +      self._check_call_svn(['update', '--force'] + flags)
 | 
| +    else:
 | 
|        logging.info(
 | 
|            'Directory %s is not present, checking it out.' % self.project_path)
 | 
|        self._check_call_svn(
 | 
|            ['checkout', self.svn_url, self.project_path] + flags, cwd=None)
 | 
| -    else:
 | 
| -      scm.SVN.Revert(self.project_path, no_ignore=True)
 | 
| -      # Revive files that were deleted in scm.SVN.Revert().
 | 
| -      self._check_call_svn(['update', '--force'] + flags)
 | 
|      return self._get_revision()
 | 
|  
 | 
|    def _get_revision(self):
 | 
| 
 |