diff --git a/docs/HACKING.md b/docs/HACKING.md index 33d32c91197..2a58780fbf5 100644 --- a/docs/HACKING.md +++ b/docs/HACKING.md @@ -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 diff --git a/tools/git-post-rewrite-hook.sh b/tools/git-post-rewrite-hook.sh new file mode 100755 index 00000000000..78feb9dbbae --- /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 4b49ab9c45f..a53f1790c17 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 -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