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): |