From f1e9e8041c3e83fe7cf0d5ae382448514f3be3e6 Mon Sep 17 00:00:00 2001 From: Daan De Meyer Date: Wed, 10 Apr 2024 14:35:20 +0200 Subject: git: Add post-rewrite hook that invokes git submodule update git rebase does not support a --recurse-submodules switch to automatically check out the submodules at their registered commits during or after a rebase. Instead, let's use the post-rewrite git hook to do this ourselves. --- tools/git-post-rewrite-hook.sh | 4 ++++ tools/git-setup.sh | 19 ++++++++++++++----- 2 files changed, 18 insertions(+), 5 deletions(-) create mode 100755 tools/git-post-rewrite-hook.sh (limited to 'tools') diff --git a/tools/git-post-rewrite-hook.sh b/tools/git-post-rewrite-hook.sh new file mode 100755 index 0000000000..78feb9dbba --- /dev/null +++ b/tools/git-post-rewrite-hook.sh @@ -0,0 +1,4 @@ +#!/bin/sh +# SPDX-License-Identifier: LGPL-2.1-or-later + +exec git submodule update diff --git a/tools/git-setup.sh b/tools/git-setup.sh index 4b49ab9c45..a53f1790c1 100755 --- a/tools/git-setup.sh +++ b/tools/git-setup.sh @@ -10,10 +10,19 @@ if [ -e .git ]; then git config push.recurseSubmodules no fi -if [ ! -f .git/hooks/pre-commit.sample ] || [ -f .git/hooks/pre-commit ]; then - exit 2 # not needed +ret=2 + +if [ -f .git/hooks/pre-commit.sample ] && [ ! -f .git/hooks/pre-commit ]; then + cp -p .git/hooks/pre-commit.sample .git/hooks/pre-commit + chmod +x .git/hooks/pre-commit + echo 'Activated pre-commit hook' + ret=0 +fi + +if [ ! -f .git/hooks/post-rewrite ]; then + cp -p tools/git-post-rewrite-hook.sh .git/hooks/post-rewrite + echo 'Activated post-rewrite hook' + ret=0 fi -cp -p .git/hooks/pre-commit.sample .git/hooks/pre-commit -chmod +x .git/hooks/pre-commit -echo 'Activated pre-commit hook' +exit $ret -- cgit v1.2.3