mirror of
https://github.com/morgan9e/systemd
synced 2026-04-14 00:14:32 +09:00
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.
This commit is contained in:
@@ -21,6 +21,8 @@ git correctly (running `meson` will run these commands for you automatically):
|
||||
$ git config submodule.recurse true
|
||||
$ git config fetch.recurseSubmodules on-demand
|
||||
$ git config push.recurseSubmodules no
|
||||
$ cp .git/hooks/pre-commit.sample .git/hooks/pre-commit
|
||||
$ cp tools/git-post-rewrite-hook.sh .git/hooks/post-rewrite
|
||||
```
|
||||
|
||||
When adding new functionality, tests should be added. For shared functionality
|
||||
|
||||
4
tools/git-post-rewrite-hook.sh
Executable file
4
tools/git-post-rewrite-hook.sh
Executable file
@@ -0,0 +1,4 @@
|
||||
#!/bin/sh
|
||||
# SPDX-License-Identifier: LGPL-2.1-or-later
|
||||
|
||||
exec git submodule update
|
||||
@@ -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
|
||||
|
||||
cp -p .git/hooks/pre-commit.sample .git/hooks/pre-commit
|
||||
chmod +x .git/hooks/pre-commit
|
||||
echo 'Activated pre-commit hook'
|
||||
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
|
||||
|
||||
exit $ret
|
||||
|
||||
Reference in New Issue
Block a user