scons: Fix hook installation error caused by stale cache
authorAndreas Sandberg <andreas.sandberg@arm.com>
Wed, 5 Apr 2017 08:53:43 +0000 (09:53 +0100)
committerAndreas Sandberg <andreas.sandberg@arm.com>
Wed, 5 Apr 2017 10:28:55 +0000 (10:28 +0000)
Due to the way SCons caches some file system state internally, it
sometimes "remembers" that a file or directory didn't exist at some
point. The git hook installation script sometimes needs to create a
hooks directory in the repository. Due to the cached state of the
hooks directory, the build system tries to create it twice. The second
mkdir operation leads to an error since the directory already exists.

Fix this issue by clearing the cached state of the hooks directory
after creating it.

Change-Id: I3f67f75c06ef928b439a0742f7619b7e92ed093b
Signed-off-by: Andreas Sandberg <andreas.sandberg@arm.com>
Reviewed-on: https://gem5-review.googlesource.com/2660
Reviewed-by: Gabe Black <gabeblack@google.com>
SConstruct

index ce53a51c0dc92d561a936ff61af712a9d52c9a23..6010f3a5793af185e391cb8932bf1b1efbbd8fae 100755 (executable)
@@ -399,6 +399,7 @@ def install_git_style_hooks():
 
         if not git_hooks.exists():
             mkdir(git_hooks.get_abspath())
+            git_hooks.clear()
 
         abs_symlink_hooks = git_hooks.islink() and \
             os.path.isabs(os.readlink(git_hooks.get_abspath()))