summaryrefslogtreecommitdiffstats
path: root/tools
diff options
context:
space:
mode:
authorDaan De Meyer <daan.j.demeyer@gmail.com>2024-04-10 14:35:20 +0200
committerDaan De Meyer <daan.j.demeyer@gmail.com>2024-04-10 14:39:49 +0200
commitf1e9e8041c3e83fe7cf0d5ae382448514f3be3e6 (patch)
tree061e5e346eb095e3a31bee362abbf5a52c9706c0 /tools
parentUpdate submodules (diff)
downloadsystemd-f1e9e8041c3e83fe7cf0d5ae382448514f3be3e6.tar.xz
systemd-f1e9e8041c3e83fe7cf0d5ae382448514f3be3e6.zip
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.
Diffstat (limited to 'tools')
-rwxr-xr-xtools/git-post-rewrite-hook.sh4
-rwxr-xr-xtools/git-setup.sh19
2 files changed, 18 insertions, 5 deletions
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