godot/misc/hooks
Rémi Verschelde f9b91d8d24 Style: Ensure consistent formatting with clang-format 15 2022-09-21 13:23:17 +02:00
..
README.md Style: Ensure consistent formatting with clang-format 15 2022-09-21 13:23:17 +02:00
canonicalize_filename.sh Style: Cleanup uses of double spaces between words 2021-06-07 12:06:59 +02:00
pre-commit Add ability to extend the set of Git pre-commit hooks 2022-09-01 10:34:29 +02:00
pre-commit-black Make Git hooks work on worktrees on Windows 2022-09-01 10:34:13 +02:00
pre-commit-clang-format Style: Ensure consistent formatting with clang-format 15 2022-09-21 13:23:17 +02:00
pre-commit-make-rst Rename "makerst.py" to "make_rst.py" 2021-10-26 13:34:36 +02:00
winmessage.ps1 Cleanup: Remove executable bit from files which don't need it 2021-01-26 17:00:15 +01:00

README.md

Git hooks for Godot Engine

This folder contains Git hooks meant to be installed locally by Godot Engine contributors to make sure they comply with our requirements.

List of hooks

  • Pre-commit hook for clang-format: Applies clang-format to the staged files before accepting a commit; blocks the commit and generates a patch if the style is not respected. You may need to edit the file if your clang-format binary is not in the PATH, or if you want to enable colored output with pygmentize.
  • Pre-commit hook for black: Applies black to the staged Python files before accepting a commit.
  • Pre-commit hook for make_rst: Checks the class reference syntax using make_rst.py.

Installation

Copy all the files from this folder into your .git/hooks folder, and make sure the hooks and helper scripts are executable.

Linux/MacOS

The hooks rely on bash scripts and tools which should be in the system PATH, so they should work out of the box on Linux/macOS.

Windows

clang-format
black
  • Python installation: make sure Python is added to the PATH
  • Install black - in any console: pip3 install black

Custom hooks

The pre-commit hook will run any other script in .git/hooks whose filename matches pre-commit-custom-*, after the Godot ones.