summaryrefslogtreecommitdiff
path: root/Tools/Scripts/webkitpy/common/checkout/scm/svn.py
diff options
context:
space:
mode:
Diffstat (limited to 'Tools/Scripts/webkitpy/common/checkout/scm/svn.py')
-rw-r--r--Tools/Scripts/webkitpy/common/checkout/scm/svn.py13
1 files changed, 10 insertions, 3 deletions
diff --git a/Tools/Scripts/webkitpy/common/checkout/scm/svn.py b/Tools/Scripts/webkitpy/common/checkout/scm/svn.py
index af03f8d70..6a2e1319b 100644
--- a/Tools/Scripts/webkitpy/common/checkout/scm/svn.py
+++ b/Tools/Scripts/webkitpy/common/checkout/scm/svn.py
@@ -82,9 +82,16 @@ class SVN(SCM, SVNRepository):
else:
self._patch_directories = patch_directories
- @staticmethod
- def in_working_directory(path):
- return os.path.isdir(os.path.join(path, '.svn'))
+ @classmethod
+ def in_working_directory(cls, path):
+ if os.path.isdir(os.path.join(path, '.svn')):
+ # This is a fast shortcut for svn info that is usually correct for SVN < 1.7,
+ # but doesn't work for SVN >= 1.7.
+ return True
+
+ svn_info_args = [cls.executable_name, 'info']
+ exit_code = Executive().run_command(svn_info_args, cwd=path, return_exit_code=True)
+ return (exit_code == 0)
def find_uuid(self, path):
if not self.in_working_directory(path):