From 4866b3376440c43887676d4865272678d11fa8d2 Mon Sep 17 00:00:00 2001 From: Francisco Guerrero Date: Thu, 4 Jun 2026 10:11:21 -0700 Subject: [PATCH] Fix git hooks in cassandra builds where core.symlinks is false patch by Francisco Guerrero; reviewed by TBD for CASSANDRA-21430 --- .build/git/install-git-defaults.sh | 12 +++++++++++- 1 file changed, 11 insertions(+), 1 deletion(-) diff --git a/.build/git/install-git-defaults.sh b/.build/git/install-git-defaults.sh index 7c26ed5eda7c..55ced5d74b30 100755 --- a/.build/git/install-git-defaults.sh +++ b/.build/git/install-git-defaults.sh @@ -63,8 +63,18 @@ install_hook() { installed=false fi fi + # Resolve the source hooks directory. When git is configured with + # core.symlinks=false (e.g. for security reasons, or on filesystems that + # don't support symlinks), a symlinked hooks dir such as post-switch is + # checked out as a plain text file whose contents are the link target. + # Follow that indirection so the build works regardless of core.symlinks. + local src_dir="$bin/git-hooks/${name}" + while [[ -f "$src_dir" ]]; do + src_dir="$(dirname "$src_dir")/$(cat "$src_dir")" + done + # install all hooks - cp "$bin"/git-hooks/"${name}"/* "$d_dir"/ + cp "$src_dir"/* "$d_dir"/ # install coordinator hook install_template_script "$script_name" "$d_dir"