Index: gclient_scm.py |
diff --git a/gclient_scm.py b/gclient_scm.py |
index 925789db6717a454fa757f93bcc484b58665a576..532fabc82eeb9509acefe02811fd6981851efdc7 100644 |
--- a/gclient_scm.py |
+++ b/gclient_scm.py |
@@ -793,11 +793,14 @@ class SVNWrapper(SCMWrapper): |
from_info['Repository Root'], |
to_info['Repository Root']) |
else: |
- if scm.SVN.CaptureStatus(checkout_path) and not options.force: |
- raise gclient_utils.Error("Can't switch the checkout to %s; UUID " |
- "don't match and there is local changes " |
- "in %s. Delete the directory and " |
- "try again." % (url, checkout_path)) |
+ if not options.force: |
+ # Look for local modifications but ignore unversioned files. |
+ for status in scm.SVN.CaptureStatus(checkout_path): |
+ if status[0] != '?': |
+ raise gclient_utils.Error( |
+ ('Can\'t switch the checkout to %s; UUID don\'t match and ' |
+ 'there is local changes in %s. Delete the directory and ' |
+ 'try again.') % (url, checkout_path)) |
# Ok delete it. |
print("\n_____ switching %s to a new checkout" % self.relpath) |
gclient_utils.RemoveDirectory(checkout_path) |