scripts: fix update_deps retry clone
authorBob Ellison <bob@lunarg.com>
Wed, 15 Jul 2020 21:13:48 +0000 (15:13 -0600)
committerBob Ellison <45772930+lunarpapillo@users.noreply.github.com>
Thu, 16 Jul 2020 00:29:58 +0000 (18:29 -0600)
There was a subtle bug in the original change; "git fetch"
would retry correctly, but "git clone" failed because the
destination directory was missing (after having been removed,
to ensure a clean clone operation).

The test case that was used (hundreds of times) happened to
provoke an error on the "git fetch" path; I was unaware that
the "git clone" failure path had never been exercised.

scripts/update_deps.py

index 658dcf54f1fa427ddd4d566f483bacd615aa11ad..ea21c9fbaae9c3dfeb88ff4117692390ba0319e8 100755 (executable)
@@ -345,8 +345,8 @@ class GoodRepo(object):
 
     def Clone(self, retries=10, retry_seconds=60):
         print('Cloning {n} into {d}'.format(n=self.name, d=self.repo_dir))
-        distutils.dir_util.mkpath(self.repo_dir)
         for retry in range(retries):
+            distutils.dir_util.mkpath(self.repo_dir)
             try:
                 command_output(['git', 'clone', self.url, '.'], self.repo_dir)
                 # If we get here, we didn't raise an error