scons: Use a relative symlink for git hooks more selectively.
authorGabe Black <gabeblack@google.com>
Sat, 25 Mar 2017 09:26:04 +0000 (02:26 -0700)
committerGabe Black <gabeblack@google.com>
Sun, 26 Mar 2017 17:39:33 +0000 (17:39 +0000)
commitd82e59f74bdb2fb9b5e770a0cc9a1e7c649fbd81
treed554ac9c75fd834fd4e7fc2923ff8bd8329ce60d
parented44b7f6e2e6e737eda6a305afc50d3f958736b1
scons: Use a relative symlink for git hooks more selectively.

If the hooks directory is a symlink, then there are at least two possible
scenarios to consider when installing a hook which is itself a symlink. The
first is that hooks is a relative symlink, and so is likely intended to stay
in place relative to .git and the git working directory. In that case, it's ok
for the symlinks inside of hooks to be relative to the working directory too,
since they should also stay in place relatively speaking.

The second situation is that the symlink is absolute. In that case, moving the
git working directory will move the hook relative to the hook directory, and
any relative symlink will become broken. In that case, the hook symlink needs
to be absolute.

The same logic likely applies to the .git directory itself, although I haven't
run into a situation in practice where the .git directory is actually a
symlink.

Change-Id: I047aa198094dd0fd5a841417d93b211ece02783f
Reviewed-on: https://gem5-review.googlesource.com/2541
Reviewed-by: Andreas Sandberg <andreas.sandberg@arm.com>
Maintainer: Andreas Sandberg <andreas.sandberg@arm.com>
SConstruct